Add new test-driver script, run_tests.py.
Old run_tests.sh still lives (for now). Changes include: - Tests are run in parallel across all of the available CPU cores - Option to create a statically-linked executable for each test (rather than using the LLVM JIT). This is in particular useful for AVX, which doesn't have good JIT support yet. - Static executables also makes it possible to test x86, not just x86-64, codegen. - Fixed a number of tests in failing_tests, which were actually failing due to the fact that the expected function signature of tests had changed.
This commit is contained in:
@@ -14,7 +14,7 @@ export void f_fu(uniform float ret[], uniform float aa[], uniform float b) {
|
||||
varying int3 vv = array[a];
|
||||
++vv.y;
|
||||
array[a] = vv;
|
||||
print("fin %\n", array[programIndex].y);
|
||||
//CO print("fin %\n", array[programIndex].y);
|
||||
ret[programIndex] = array[programIndex].y;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,19 +1,14 @@
|
||||
static float float4(uniform float a, uniform float b, uniform float c,
|
||||
uniform float d) {
|
||||
float ret = 0;
|
||||
for (uniform int i = 0; i < programCount; i += 4) {
|
||||
ret = insert(ret, i + 0, a);
|
||||
ret = insert(ret, i + 1, b);
|
||||
ret = insert(ret, i + 2, c);
|
||||
ret = insert(ret, i + 3, d);
|
||||
}
|
||||
return ret;
|
||||
|
||||
export uniform int width() { return programCount; }
|
||||
|
||||
export void f_f(uniform float r[], uniform float a[]) {
|
||||
unsigned int i = (unsigned int)a[programIndex];
|
||||
r[programIndex] = max((unsigned int)2, i);
|
||||
}
|
||||
|
||||
export float f_f(float a) {
|
||||
unsigned int i = (unsigned int)a;
|
||||
return max((unsigned int)2, i);
|
||||
export void result(uniform float r[]) {
|
||||
r[programIndex] = 1+programIndex;
|
||||
r[0] = 2;
|
||||
}
|
||||
|
||||
export float result() { return float4(2,2,3,4); }
|
||||
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
|
||||
export float f_f(float a) {
|
||||
unsigned int i = (unsigned int)a;
|
||||
return max((unsigned int)10, i);
|
||||
export uniform int width() { return programCount; }
|
||||
|
||||
export void f_f(uniform float result[], uniform float aa[]) {
|
||||
unsigned int i = (unsigned int)aa[programIndex];
|
||||
result[programIndex] = max((unsigned int)100, i);
|
||||
}
|
||||
|
||||
export float result() { return 10; }
|
||||
export void result(uniform float r[]) { r[programIndex] = 100; }
|
||||
|
||||
|
||||
@@ -1,19 +1,14 @@
|
||||
static float float4(uniform float a, uniform float b, uniform float c,
|
||||
uniform float d) {
|
||||
float ret = 0;
|
||||
for (uniform int i = 0; i < programCount; i += 4) {
|
||||
ret = insert(ret, i + 0, a);
|
||||
ret = insert(ret, i + 1, b);
|
||||
ret = insert(ret, i + 2, c);
|
||||
ret = insert(ret, i + 3, d);
|
||||
}
|
||||
return ret;
|
||||
|
||||
export uniform int width() { return programCount; }
|
||||
|
||||
export void f_f(uniform float result[], uniform float aa[]) {
|
||||
unsigned int i = (unsigned int)aa[programIndex];
|
||||
result[programIndex] = min((unsigned int)2, i);
|
||||
}
|
||||
|
||||
export float f_f(float a) {
|
||||
unsigned int i = (unsigned int)a;
|
||||
return min((unsigned int)2, i);
|
||||
export void result(uniform float r[]) {
|
||||
r[programIndex] = 2;
|
||||
r[0] = 1;
|
||||
}
|
||||
|
||||
export float result() { return float4(1,2,2,2); }
|
||||
|
||||
|
||||
@@ -1,19 +1,13 @@
|
||||
static float float4(uniform float a, uniform float b, uniform float c,
|
||||
uniform float d) {
|
||||
float ret = 0;
|
||||
for (uniform int i = 0; i < programCount; i += 4) {
|
||||
ret = insert(ret, i + 0, a);
|
||||
ret = insert(ret, i + 1, b);
|
||||
ret = insert(ret, i + 2, c);
|
||||
ret = insert(ret, i + 3, d);
|
||||
}
|
||||
return ret;
|
||||
|
||||
export uniform int width() { return programCount; }
|
||||
|
||||
export void f_f(uniform float r[], uniform float a[]) {
|
||||
unsigned int i = (unsigned int)a[programIndex];
|
||||
r[programIndex] = min((unsigned int)20, i);
|
||||
}
|
||||
|
||||
export float f_f(float a) {
|
||||
unsigned int i = (unsigned int)a;
|
||||
return min((unsigned int)20, i);
|
||||
export void result(uniform float r[]) {
|
||||
r[programIndex] = 1+programIndex;
|
||||
}
|
||||
|
||||
export float result() { return float4(1,2,3,4); }
|
||||
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
|
||||
struct Foo {
|
||||
float f;
|
||||
};
|
||||
|
||||
|
||||
export float foo(Foo f[], int i, uniform int j) {
|
||||
Foo x = f[i];
|
||||
return x.f;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user