fix codetest failure - ASSERT_ARGS does not have a ; after and
[parrot.git] / t / op / 64bit.t
blob65c4adddb1873346dbcd3ae66c1cffcf7679b93a
1 #!./parrot
2 # Copyright (C) 2001-2010, Parrot Foundation.
3 # $Id$
5 =head1 NAME
7 t/op/64bit.t - Testing integer ops on 64-bit platforms
9 =head1 SYNOPSIS
11         % prove t/op/64bit.t
13 =head1 DESCRIPTION
15 Test integer operations on platforms with 64-bit integers.
16 Tests are skipped on other platforms.
18 =cut
20 .sub main :main
21     .include "iglobals.pasm"
22     .include 'test_more.pir'
24     # Check to see if this is 64 bit
25     .local pmc interp     # a handle to our interpreter object.
26     interp = getinterp
27     .local pmc config
28     config = interp[.IGLOBALS_CONFIG_HASH]
29     .local int intvalsize
30     intvalsize = config['intvalsize']
32     plan(5)
34     if intvalsize == 8 goto is_64_bit
35        skip(5, "this is not a 64 bit platform")
36     goto end
38   is_64_bit:
40     # setup TODO for platform 'MSWin32'
41     .local string osname
42     osname = config['osname']
43     .local int todo_1
44     todo_1 = 0
45     unless  osname == "MSWin32" goto do_test
46     todo_1 = 1
48   do_test:
50     bitops64(todo_1)
52   end:
53 .end
56 .sub bitops64
57         # check bitops for 8-byte ints
58         .param int todo_1
60         set $I0, 0xffffffffffffffff
62         if todo_1 goto do_todo
63         is( $I0, -1, 'bitops64' )
64         goto test_2
66       do_todo:
67         if $I0 == -1 goto todo_pass
68         todo ( 0, 'bitops64', 'not working on MSWin32, amd64' )
69         goto test_2
70       todo_pass:
71         todo ( 1, 'bitops64', 'not working on MSWin32, amd64' )
73       test_2:
74         set $I1, 0x00000000ffffffff
75         is( $I1, 4294967295, 'bitops64' )
77         set $I0, $I1
78         shl $I0, $I0, 32
79         is( $I0, -4294967296, 'bitops64' )
81         band $I2, $I0, $I1
82         is( $I2, 0, 'bitops64' )
84         bor $I2, $I0, $I1
85         is( $I2, -1, 'bitops64' )
86 .end
88 # Local Variables:
89 #   mode: pir
90 #   fill-column: 100
91 # End:
92 # vim: expandtab shiftwidth=4 ft=pir: