aboutsummaryrefslogtreecommitdiff
path: root/tests/runner.py
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-02-05 16:14:55 -0800
committerAlon Zakai <alonzakai@gmail.com>2013-02-05 16:14:55 -0800
commit9aa7bbf6987cad3cff53906c5d6a6e77b6bd5b9c (patch)
tree2053c9fd309170d8a580ea4add4427427a462fac /tests/runner.py
parent83fa6b5ca739d3afc4abdf3d602e0f08e0e25307 (diff)
fix memmove bug and add testing
Diffstat (limited to 'tests/runner.py')
-rwxr-xr-xtests/runner.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/runner.py b/tests/runner.py
index 62600830..b6980933 100755
--- a/tests/runner.py
+++ b/tests/runner.py
@@ -4168,6 +4168,35 @@ The current type of b is: 9
'''
self.do_run(src, 'memmove can be very very useful')
+ def test_memmove2(self):
+ if Settings.USE_TYPED_ARRAYS != 2: return self.skip('need ta2')
+
+ src = r'''
+ #include <stdio.h>
+ #include <string.h>
+ #include <assert.h>
+ int main() {
+ int sum = 0;
+ char buffer[256];
+ for (int i = 0; i < 10; i++) {
+ for (int j = 0; j < 10; j++) {
+ for (int k = 0; k < 35; k++) {
+ for (int t = 0; t < 256; t++) buffer[t] = t;
+ char *dest = buffer + i;
+ char *src = buffer + j;
+ if (dest == src) continue;
+ //printf("%d, %d, %d\n", i, j, k);
+ assert(memmove(dest, src, k) == dest);
+ for (int t = 0; t < 256; t++) sum += buffer[t];
+ }
+ }
+ }
+ printf("final: %d.\n", sum);
+ return 1;
+ }
+ '''
+ self.do_run(src, 'final: -403200.');
+
def test_bsearch(self):
if Settings.QUANTUM_SIZE == 1: return self.skip('Test cannot work with q1')