commit efe8cf5500dd7096efb67fe3507dd0b860effa7c from: Sergey Bronnikov date: Fri Nov 24 15:37:41 2017 UTC add commit - 02d01148853952868eddec2455c4872c9179d545 commit + efe8cf5500dd7096efb67fe3507dd0b860effa7c blob - /dev/null blob + 7babb975a6296cbfc6159efb4caa829bdb5d5f23 (mode 644) --- /dev/null +++ tests/atomics/2d.cc @@ -0,0 +1,93 @@ + +/* Copyright (c) Mark J. Kilgard, 1997. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +/* This program was requested by Patrick Earl; hopefully someone else + will write the equivalent Direct3D immediate mode program. */ + +#include + +GLfloat light_diffuse[] = {1.0, 0.0, 0.0, 1.0}; /* Red diffuse light. */ +GLfloat light_position[] = {1.0, 1.0, 1.0, 0.0}; /* Infinite light location. */ +GLfloat n[6][3] = { /* Normals for the 6 faces of a cube. */ + {-1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}, {1.0, 0.0, 0.0}, + {0.0, -1.0, 0.0}, {0.0, 0.0, 1.0}, {0.0, 0.0, -1.0} }; +GLint faces[6][4] = { /* Vertex indices for the 6 faces of a cube. */ + {0, 1, 2, 3}, {3, 2, 6, 7}, {7, 6, 5, 4}, + {4, 5, 1, 0}, {5, 6, 2, 1}, {7, 4, 0, 3} }; +GLfloat v[8][3]; /* Will be filled in with X,Y,Z vertexes. */ + +void +drawBox(void) +{ + int i; + + for (i = 0; i < 6; i++) { + glBegin(GL_QUADS); + glNormal3fv(&n[i][0]); + glVertex3fv(&v[faces[i][0]][0]); + glVertex3fv(&v[faces[i][1]][0]); + glVertex3fv(&v[faces[i][2]][0]); + glVertex3fv(&v[faces[i][3]][0]); + glEnd(); + } +} + +void +display(void) +{ + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + drawBox(); + glutSwapBuffers(); +} + +void +init(void) +{ + /* Setup cube vertex data. */ + v[0][0] = v[1][0] = v[2][0] = v[3][0] = -1; + v[4][0] = v[5][0] = v[6][0] = v[7][0] = 1; + v[0][1] = v[1][1] = v[4][1] = v[5][1] = -1; + v[2][1] = v[3][1] = v[6][1] = v[7][1] = 1; + v[0][2] = v[3][2] = v[4][2] = v[7][2] = 1; + v[1][2] = v[2][2] = v[5][2] = v[6][2] = -1; + + /* Enable a single OpenGL light. */ + glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse); + glLightfv(GL_LIGHT0, GL_POSITION, light_position); + glEnable(GL_LIGHT0); + glEnable(GL_LIGHTING); + + /* Use depth buffering for hidden surface elimination. */ + glEnable(GL_DEPTH_TEST); + + /* Setup the view of the cube. */ + glMatrixMode(GL_PROJECTION); + gluPerspective( /* field of view in degree */ 40.0, + /* aspect ratio */ 1.0, + /* Z near */ 1.0, /* Z far */ 10.0); + glMatrixMode(GL_MODELVIEW); + gluLookAt(0.0, 0.0, 5.0, /* eye is at (0,0,5) */ + 0.0, 0.0, 0.0, /* center is at (0,0,0) */ + 0.0, 1.0, 0.); /* up is in positive Y direction */ + + /* Adjust cube position to be asthetic angle. */ + glTranslatef(0.0, 0.0, -1.0); + glRotatef(60, 1.0, 0.0, 0.0); + glRotatef(-20, 0.0, 0.0, 1.0); +} + +int +main(int argc, char **argv) +{ + glutInit(&argc, argv); + glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); + glutCreateWindow("red 3D lighted cube"); + glutDisplayFunc(display); + init(); + glutMainLoop(); + return 0; /* ANSI C requires main to return int. */ +} blob - /dev/null blob + 1d6319a90a2da2c594ae4e4887c7003fe493fc46 (mode 644) --- /dev/null +++ tests/atomics/at_2d.cc @@ -0,0 +1,13 @@ +#include "benchmark/benchmark.h" + +void perf_2d() { + +} + +void BM_2d(benchmark::State& state) { + while (state.KeepRunning()) perf_2d(); +} + +BENCHMARK(BM_2d); + +BENCHMARK_MAIN() blob - /dev/null blob + 2dfacfdc89b6c6ff63b26f44945c6123f42e4037 (mode 644) --- /dev/null +++ tests/atomics/at_3d.cc @@ -0,0 +1,15 @@ +#include "benchmark/benchmark.h" + +// https://www.opengl.org/archives/resources/code/samples/glut_examples/examples/examples.html + +void perf_3d() { + +} + +void BM_3d(benchmark::State& state) { + while (state.KeepRunning()) perf_3d(); +} + +BENCHMARK(BM_3d); + +BENCHMARK_MAIN() blob - /dev/null blob + 6bb5e9f292f407d98527bd3054c12b1d91a02fbc (mode 644) --- /dev/null +++ tests/atomics/sigbus.c @@ -0,0 +1,17 @@ +#include +#include +#include +#include +#include + +int main (int argc, char** argv) { + int fd = open("test", O_WRONLY | O_CREAT, 0644); + write(fd, "abcd\n", 5); + close(fd); + + fd = open("test", O_RDONLY); + char* ptr = (char*)mmap(0, 102400, PROT_READ, MAP_SHARED, fd, 0); + char z = ptr[4097]; + write(1, &z, 1); + return 0; +}