Chromium Code Reviews| Index: crosstest/mem_intrin_main.c |
| diff --git a/crosstest/mem_intrin_main.c b/crosstest/mem_intrin_main.c |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..31016131e516fcddce084f948d9c26209086ef7b |
| --- /dev/null |
| +++ b/crosstest/mem_intrin_main.c |
| @@ -0,0 +1,38 @@ |
| +/* crosstest.py --test=mem_intrin.c --driver=mem_intrin_main.c \ |
| + --prefix=Subzero_ --output=mem_intrin */ |
| + |
| +#include <stdint.h> |
| +#include <stdio.h> |
| + |
| +int memcpy_test(uint8_t n); |
| +int memmove_test(uint8_t n); |
| +int memset_test(uint8_t n); |
| +int Subzero_memcpy_test(uint8_t n); |
| +int Subzero_memmove_test(uint8_t n); |
| +int Subzero_memset_test(uint8_t n); |
| + |
| +int main(int argc, char **argv) { |
| + unsigned TotalTests = 0; |
| + unsigned Passes = 0; |
| + unsigned Failures = 0; |
| +#define do_test(test_func) \ |
|
Jim Stichnoth
2014/06/12 20:52:07
Do you think this test will be getting much bigger
jvoung (off chromium)
2014/06/16 20:51:59
Added some variable-length mem() calls, (vs the fi
|
| + for (uint8_t i = 0; i < 100; ++i) { \ |
| + ++TotalTests; \ |
| + int llc_result = test_func(i); \ |
| + int sz_result = Subzero_##test_func(i); \ |
| + if (llc_result == sz_result) { \ |
| + ++Passes; \ |
| + } else { \ |
| + ++Failures; \ |
| + printf("Failure (%s): i=%d, llc=%d, sz=%d\n", #test_func, \ |
| + i, llc_result, sz_result); \ |
| + } \ |
| + } |
| + |
| + do_test(memcpy_test) |
| + do_test(memmove_test) |
| + /* Broken: invalid push byte for val argument */ |
| + /* do_test(memset_test) */ |
| + printf("TotalTests=%u Passes=%u Failures=%u\n", TotalTests, Passes, Failures); |
| + return Failures; |
| +} |