diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-02-22 18:16:21 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-02-22 18:16:21 -0800 |
commit | 90710c0c8ee4425c06402cc7831abdee8c519a43 (patch) | |
tree | 7f18dac066988e902e93d4ba8b43fdc68cb6d82c /tests/runner.py | |
parent | 15595f1ea36fa4268e5db66b8717999f7f363621 (diff) |
asmify memcmp
Diffstat (limited to 'tests/runner.py')
-rwxr-xr-x | tests/runner.py | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/tests/runner.py b/tests/runner.py index 4ec99878..71345743 100755 --- a/tests/runner.py +++ b/tests/runner.py @@ -4134,10 +4134,12 @@ The current type of b is: 9 ''' self.do_run(src, '*0.00,0.00,0.00*\n*0,77,0*\n*0,77,0*\n*0,77,0*') - def test_memcpy(self): + def test_memcpy_memcmp(self): src = ''' #include <stdio.h> #include <string.h> + #include <assert.h> + #define MAXX 48 void reset(unsigned char *buffer) { for (int i = 0; i < MAXX; i++) buffer[i] = i+1; @@ -4158,6 +4160,20 @@ The current type of b is: 9 reset(buffer); memcpy(buffer+i, buffer+j, k); dump(buffer); + assert(memcmp(buffer+i, buffer+j, k) == 0); + buffer[i + k/2]++; + if (buffer[i + k/2] != 0) { + assert(memcmp(buffer+i, buffer+j, k) > 0); + } else { + assert(memcmp(buffer+i, buffer+j, k) < 0); + } + buffer[i + k/2]--; + buffer[j + k/2]++; + if (buffer[j + k/2] != 0) { + assert(memcmp(buffer+i, buffer+j, k) < 0); + } else { + assert(memcmp(buffer+i, buffer+j, k) > 0); + } } } } |