diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-02-02 16:05:57 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-02-02 16:05:57 -0800 |
commit | d1155beddaf5d755ee8deff80fbd787a3d09cfb3 (patch) | |
tree | edccdb6f85f08f7b846ab021c18a576a2c708098 /tests | |
parent | 364948c9a25be1896bdbdf02b9d708bd7972436c (diff) |
fix negative i64 comparisons
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/runner.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/runner.py b/tests/runner.py index 4a1443e1..fdfafbc8 100755 --- a/tests/runner.py +++ b/tests/runner.py @@ -583,6 +583,37 @@ if 'benchmark' not in str(sys.argv) and 'sanity' not in str(sys.argv): '*-1,34359738367,4294967295,1073741823*\n' + '*prod:34*') + src = r''' + #include <stdio.h> + #include <limits> + + int main() + { + long long i,j,k; + + i = 0; + j = -1, + k = 1; + + printf( "*\n" ); + printf( "%s\n", i > j ? "Ok": "Fail" ); + printf( "%s\n", k > i ? "Ok": "Fail" ); + printf( "%s\n", k > j ? "Ok": "Fail" ); + printf( "%s\n", i < j ? "Fail": "Ok" ); + printf( "%s\n", k < i ? "Fail": "Ok" ); + printf( "%s\n", k < j ? "Fail": "Ok" ); + printf( "%s\n", (i-j) >= k ? "Ok": "Fail" ); + printf( "%s\n", (i-j) <= k ? "Ok": "Fail" ); + printf( "%s\n", i > std::numeric_limits<long long>::min() ? "Ok": "Fail" ); + printf( "%s\n", i < std::numeric_limits<long long>::max() ? "Ok": "Fail" ); + printf( "*\n" ); + } + ''' + + self.do_run(src, '*\nOk\nOk\nOk\nOk\nOk\nOk\nOk\nOk\nOk\nOk\n*') + + # stuff that also needs sign corrections + Settings.CORRECT_SIGNS = 1 src = r''' |