Convert the include tests to atf.

Initial work from the GSoC 2008 project by Lukasz Strzygowski.
This commit is contained in:
jmmv 2010-07-17 19:26:27 +00:00
parent bbd81cb35e
commit 6cbeb05cb2
14 changed files with 3036 additions and 2 deletions

View File

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.21 2010/07/13 21:13:21 jmmv Exp $
# $NetBSD: Makefile,v 1.22 2010/07/17 19:26:27 jmmv Exp $
.include <bsd.own.mk>
@ -8,7 +8,7 @@ ATFFILE= yes
SUBDIR= crypto games ipf util
.if ${MKATF} != "no"
SUBDIR+= fs net kernel lib libexec rump sys syscall
SUBDIR+= fs include kernel lib libexec net rump sys syscall
. if ${MACHINE} != "evbppc" && ${MKKMOD} != "no"
SUBDIR+= modules

23
tests/include/Makefile Normal file
View File

@ -0,0 +1,23 @@
# $NetBSD: Makefile,v 1.1 2010/07/17 19:26:27 jmmv Exp $
NOMAN= # defined
.include <bsd.own.mk>
TESTSDIR= ${TESTSBASE}/include
TESTS_SUBDIRS= sys
TESTS_C= t_bitstring
TESTS_C+= t_inttypes
TESTS_C+= t_limits
TESTS_C+= t_stdint
FILESDIR= ${TESTSDIR}
FILES= d_bitstring_27.out
FILES+= d_bitstring_32.out
FILES+= d_bitstring_49.out
FILES+= d_bitstring_64.out
FILES+= d_bitstring_67.out
FILES+= d_bitstring_8.out
.include <bsd.test.mk>

View File

@ -0,0 +1,263 @@
Testing with TEST_LENGTH = 27
test _bit_byte, _bit_mask, and bitstr_size
i _bit_byte(i) _bit_mask(i) bitstr_size(i)
0 0 1 0
1 0 2 1
2 0 4 1
3 0 8 1
4 0 16 1
5 0 32 1
6 0 64 1
7 0 128 1
8 1 1 1
9 1 2 2
10 1 4 2
11 1 8 2
12 1 16 2
13 1 32 2
14 1 64 2
15 1 128 2
16 2 1 2
17 2 2 3
18 2 4 3
19 2 8 3
20 2 16 3
21 2 32 3
22 2 64 3
23 2 128 3
24 3 1 3
25 3 2 4
26 3 4 4
test bit_alloc, clearbits, bit_ffc, bit_ffs
be: 0 -1 000000000000000000000000000
is: 0 -1 000000000000000000000000000
test bit_set
be: 1 0 100100100100100100100100100
is: 1 0 100100100100100100100100100
test bit_clear
be: 0 3 000100000100000100000100000
is: 0 3 000100000100000100000100000
test bit_test using previous bitstring
i bit_test(i)
0 0
1 0
2 0
3 8
4 0
5 0
6 0
7 0
8 0
9 2
10 0
11 0
12 0
13 0
14 0
15 128
16 0
17 0
18 0
19 0
20 0
21 32
22 0
23 0
24 0
25 0
26 0
test clearbits
be: 0 -1 000000000000000000000000000
is: 0 -1 000000000000000000000000000
test bit_nset and bit_nclear
be: 0 1 011111111111111111111111110
is: 0 1 011111111111111111111111110
be: 0 1 010000000000000000000000010
is: 0 1 010000000000000000000000010
be: 0 -1 000000000000000000000000000
is: 0 -1 000000000000000000000000000
be: 26 0 111111111111111111111111110
is: 26 0 111111111111111111111111110
be: 0 -1 000000000000000000000000000
is: 0 -1 000000000000000000000000000
first 1 bit should move right 1 position each line
0 -1 0 111111111111111111111111111
1 0 1 011111111111111111111111111
2 0 2 001111111111111111111111111
3 0 3 000111111111111111111111111
4 0 4 000011111111111111111111111
5 0 5 000001111111111111111111111
6 0 6 000000111111111111111111111
7 0 7 000000011111111111111111111
8 0 8 000000001111111111111111111
9 0 9 000000000111111111111111111
10 0 10 000000000011111111111111111
11 0 11 000000000001111111111111111
12 0 12 000000000000111111111111111
13 0 13 000000000000011111111111111
14 0 14 000000000000001111111111111
15 0 15 000000000000000111111111111
16 0 16 000000000000000011111111111
17 0 17 000000000000000001111111111
18 0 18 000000000000000000111111111
19 0 19 000000000000000000011111111
20 0 20 000000000000000000001111111
21 0 21 000000000000000000000111111
22 0 22 000000000000000000000011111
23 0 23 000000000000000000000001111
24 0 24 000000000000000000000000111
25 0 25 000000000000000000000000011
26 0 26 000000000000000000000000001
first 0 bit should move right 1 position each line
0 0 -1 000000000000000000000000000
1 1 0 100000000000000000000000000
2 2 0 110000000000000000000000000
3 3 0 111000000000000000000000000
4 4 0 111100000000000000000000000
5 5 0 111110000000000000000000000
6 6 0 111111000000000000000000000
7 7 0 111111100000000000000000000
8 8 0 111111110000000000000000000
9 9 0 111111111000000000000000000
10 10 0 111111111100000000000000000
11 11 0 111111111110000000000000000
12 12 0 111111111111000000000000000
13 13 0 111111111111100000000000000
14 14 0 111111111111110000000000000
15 15 0 111111111111111000000000000
16 16 0 111111111111111100000000000
17 17 0 111111111111111110000000000
18 18 0 111111111111111111000000000
19 19 0 111111111111111111100000000
20 20 0 111111111111111111110000000
21 21 0 111111111111111111111000000
22 22 0 111111111111111111111100000
23 23 0 111111111111111111111110000
24 24 0 111111111111111111111111000
25 25 0 111111111111111111111111100
26 26 0 111111111111111111111111110
first 0 bit should move left 1 position each line
0 -1 0 111111111111111111111111111
1 26 0 111111111111111111111111110
2 25 0 111111111111111111111111100
3 24 0 111111111111111111111111000
4 23 0 111111111111111111111110000
5 22 0 111111111111111111111100000
6 21 0 111111111111111111111000000
7 20 0 111111111111111111110000000
8 19 0 111111111111111111100000000
9 18 0 111111111111111111000000000
10 17 0 111111111111111110000000000
11 16 0 111111111111111100000000000
12 15 0 111111111111111000000000000
13 14 0 111111111111110000000000000
14 13 0 111111111111100000000000000
15 12 0 111111111111000000000000000
16 11 0 111111111110000000000000000
17 10 0 111111111100000000000000000
18 9 0 111111111000000000000000000
19 8 0 111111110000000000000000000
20 7 0 111111100000000000000000000
21 6 0 111111000000000000000000000
22 5 0 111110000000000000000000000
23 4 0 111100000000000000000000000
24 3 0 111000000000000000000000000
25 2 0 110000000000000000000000000
26 1 0 100000000000000000000000000
first 1 bit should move left 1 position each line
0 0 -1 000000000000000000000000000
1 0 26 000000000000000000000000001
2 0 25 000000000000000000000000011
3 0 24 000000000000000000000000111
4 0 23 000000000000000000000001111
5 0 22 000000000000000000000011111
6 0 21 000000000000000000000111111
7 0 20 000000000000000000001111111
8 0 19 000000000000000000011111111
9 0 18 000000000000000000111111111
10 0 17 000000000000000001111111111
11 0 16 000000000000000011111111111
12 0 15 000000000000000111111111111
13 0 14 000000000000001111111111111
14 0 13 000000000000011111111111111
15 0 12 000000000000111111111111111
16 0 11 000000000001111111111111111
17 0 10 000000000011111111111111111
18 0 9 000000000111111111111111111
19 0 8 000000001111111111111111111
20 0 7 000000011111111111111111111
21 0 6 000000111111111111111111111
22 0 5 000001111111111111111111111
23 0 4 000011111111111111111111111
24 0 3 000111111111111111111111111
25 0 2 001111111111111111111111111
26 0 1 011111111111111111111111111
0 bit should move right 1 position each line
0 0 1 011111111111111111111111111
1 1 0 101111111111111111111111111
2 2 0 110111111111111111111111111
3 3 0 111011111111111111111111111
4 4 0 111101111111111111111111111
5 5 0 111110111111111111111111111
6 6 0 111111011111111111111111111
7 7 0 111111101111111111111111111
8 8 0 111111110111111111111111111
9 9 0 111111111011111111111111111
10 10 0 111111111101111111111111111
11 11 0 111111111110111111111111111
12 12 0 111111111111011111111111111
13 13 0 111111111111101111111111111
14 14 0 111111111111110111111111111
15 15 0 111111111111111011111111111
16 16 0 111111111111111101111111111
17 17 0 111111111111111110111111111
18 18 0 111111111111111111011111111
19 19 0 111111111111111111101111111
20 20 0 111111111111111111110111111
21 21 0 111111111111111111111011111
22 22 0 111111111111111111111101111
23 23 0 111111111111111111111110111
24 24 0 111111111111111111111111011
25 25 0 111111111111111111111111101
26 26 0 111111111111111111111111110
1 bit should move right 1 position each line
0 1 0 100000000000000000000000000
1 0 1 010000000000000000000000000
2 0 2 001000000000000000000000000
3 0 3 000100000000000000000000000
4 0 4 000010000000000000000000000
5 0 5 000001000000000000000000000
6 0 6 000000100000000000000000000
7 0 7 000000010000000000000000000
8 0 8 000000001000000000000000000
9 0 9 000000000100000000000000000
10 0 10 000000000010000000000000000
11 0 11 000000000001000000000000000
12 0 12 000000000000100000000000000
13 0 13 000000000000010000000000000
14 0 14 000000000000001000000000000
15 0 15 000000000000000100000000000
16 0 16 000000000000000010000000000
17 0 17 000000000000000001000000000
18 0 18 000000000000000000100000000
19 0 19 000000000000000000010000000
20 0 20 000000000000000000001000000
21 0 21 000000000000000000000100000
22 0 22 000000000000000000000010000
23 0 23 000000000000000000000001000
24 0 24 000000000000000000000000100
25 0 25 000000000000000000000000010
26 0 26 000000000000000000000000001

View File

@ -0,0 +1,303 @@
Testing with TEST_LENGTH = 32
test _bit_byte, _bit_mask, and bitstr_size
i _bit_byte(i) _bit_mask(i) bitstr_size(i)
0 0 1 0
1 0 2 1
2 0 4 1
3 0 8 1
4 0 16 1
5 0 32 1
6 0 64 1
7 0 128 1
8 1 1 1
9 1 2 2
10 1 4 2
11 1 8 2
12 1 16 2
13 1 32 2
14 1 64 2
15 1 128 2
16 2 1 2
17 2 2 3
18 2 4 3
19 2 8 3
20 2 16 3
21 2 32 3
22 2 64 3
23 2 128 3
24 3 1 3
25 3 2 4
26 3 4 4
27 3 8 4
28 3 16 4
29 3 32 4
30 3 64 4
31 3 128 4
test bit_alloc, clearbits, bit_ffc, bit_ffs
be: 0 -1 00000000000000000000000000000000
is: 0 -1 00000000000000000000000000000000
test bit_set
be: 1 0 10010010010010010010010010010010
is: 1 0 10010010010010010010010010010010
test bit_clear
be: 0 3 00010000010000010000010000010000
is: 0 3 00010000010000010000010000010000
test bit_test using previous bitstring
i bit_test(i)
0 0
1 0
2 0
3 8
4 0
5 0
6 0
7 0
8 0
9 2
10 0
11 0
12 0
13 0
14 0
15 128
16 0
17 0
18 0
19 0
20 0
21 32
22 0
23 0
24 0
25 0
26 0
27 8
28 0
29 0
30 0
31 0
test clearbits
be: 0 -1 00000000000000000000000000000000
is: 0 -1 00000000000000000000000000000000
test bit_nset and bit_nclear
be: 0 1 01111111111111111111111111111110
is: 0 1 01111111111111111111111111111110
be: 0 1 01000000000000000000000000000010
is: 0 1 01000000000000000000000000000010
be: 0 -1 00000000000000000000000000000000
is: 0 -1 00000000000000000000000000000000
be: 31 0 11111111111111111111111111111110
is: 31 0 11111111111111111111111111111110
be: 0 -1 00000000000000000000000000000000
is: 0 -1 00000000000000000000000000000000
first 1 bit should move right 1 position each line
0 -1 0 11111111111111111111111111111111
1 0 1 01111111111111111111111111111111
2 0 2 00111111111111111111111111111111
3 0 3 00011111111111111111111111111111
4 0 4 00001111111111111111111111111111
5 0 5 00000111111111111111111111111111
6 0 6 00000011111111111111111111111111
7 0 7 00000001111111111111111111111111
8 0 8 00000000111111111111111111111111
9 0 9 00000000011111111111111111111111
10 0 10 00000000001111111111111111111111
11 0 11 00000000000111111111111111111111
12 0 12 00000000000011111111111111111111
13 0 13 00000000000001111111111111111111
14 0 14 00000000000000111111111111111111
15 0 15 00000000000000011111111111111111
16 0 16 00000000000000001111111111111111
17 0 17 00000000000000000111111111111111
18 0 18 00000000000000000011111111111111
19 0 19 00000000000000000001111111111111
20 0 20 00000000000000000000111111111111
21 0 21 00000000000000000000011111111111
22 0 22 00000000000000000000001111111111
23 0 23 00000000000000000000000111111111
24 0 24 00000000000000000000000011111111
25 0 25 00000000000000000000000001111111
26 0 26 00000000000000000000000000111111
27 0 27 00000000000000000000000000011111
28 0 28 00000000000000000000000000001111
29 0 29 00000000000000000000000000000111
30 0 30 00000000000000000000000000000011
31 0 31 00000000000000000000000000000001
first 0 bit should move right 1 position each line
0 0 -1 00000000000000000000000000000000
1 1 0 10000000000000000000000000000000
2 2 0 11000000000000000000000000000000
3 3 0 11100000000000000000000000000000
4 4 0 11110000000000000000000000000000
5 5 0 11111000000000000000000000000000
6 6 0 11111100000000000000000000000000
7 7 0 11111110000000000000000000000000
8 8 0 11111111000000000000000000000000
9 9 0 11111111100000000000000000000000
10 10 0 11111111110000000000000000000000
11 11 0 11111111111000000000000000000000
12 12 0 11111111111100000000000000000000
13 13 0 11111111111110000000000000000000
14 14 0 11111111111111000000000000000000
15 15 0 11111111111111100000000000000000
16 16 0 11111111111111110000000000000000
17 17 0 11111111111111111000000000000000
18 18 0 11111111111111111100000000000000
19 19 0 11111111111111111110000000000000
20 20 0 11111111111111111111000000000000
21 21 0 11111111111111111111100000000000
22 22 0 11111111111111111111110000000000
23 23 0 11111111111111111111111000000000
24 24 0 11111111111111111111111100000000
25 25 0 11111111111111111111111110000000
26 26 0 11111111111111111111111111000000
27 27 0 11111111111111111111111111100000
28 28 0 11111111111111111111111111110000
29 29 0 11111111111111111111111111111000
30 30 0 11111111111111111111111111111100
31 31 0 11111111111111111111111111111110
first 0 bit should move left 1 position each line
0 -1 0 11111111111111111111111111111111
1 31 0 11111111111111111111111111111110
2 30 0 11111111111111111111111111111100
3 29 0 11111111111111111111111111111000
4 28 0 11111111111111111111111111110000
5 27 0 11111111111111111111111111100000
6 26 0 11111111111111111111111111000000
7 25 0 11111111111111111111111110000000
8 24 0 11111111111111111111111100000000
9 23 0 11111111111111111111111000000000
10 22 0 11111111111111111111110000000000
11 21 0 11111111111111111111100000000000
12 20 0 11111111111111111111000000000000
13 19 0 11111111111111111110000000000000
14 18 0 11111111111111111100000000000000
15 17 0 11111111111111111000000000000000
16 16 0 11111111111111110000000000000000
17 15 0 11111111111111100000000000000000
18 14 0 11111111111111000000000000000000
19 13 0 11111111111110000000000000000000
20 12 0 11111111111100000000000000000000
21 11 0 11111111111000000000000000000000
22 10 0 11111111110000000000000000000000
23 9 0 11111111100000000000000000000000
24 8 0 11111111000000000000000000000000
25 7 0 11111110000000000000000000000000
26 6 0 11111100000000000000000000000000
27 5 0 11111000000000000000000000000000
28 4 0 11110000000000000000000000000000
29 3 0 11100000000000000000000000000000
30 2 0 11000000000000000000000000000000
31 1 0 10000000000000000000000000000000
first 1 bit should move left 1 position each line
0 0 -1 00000000000000000000000000000000
1 0 31 00000000000000000000000000000001
2 0 30 00000000000000000000000000000011
3 0 29 00000000000000000000000000000111
4 0 28 00000000000000000000000000001111
5 0 27 00000000000000000000000000011111
6 0 26 00000000000000000000000000111111
7 0 25 00000000000000000000000001111111
8 0 24 00000000000000000000000011111111
9 0 23 00000000000000000000000111111111
10 0 22 00000000000000000000001111111111
11 0 21 00000000000000000000011111111111
12 0 20 00000000000000000000111111111111
13 0 19 00000000000000000001111111111111
14 0 18 00000000000000000011111111111111
15 0 17 00000000000000000111111111111111
16 0 16 00000000000000001111111111111111
17 0 15 00000000000000011111111111111111
18 0 14 00000000000000111111111111111111
19 0 13 00000000000001111111111111111111
20 0 12 00000000000011111111111111111111
21 0 11 00000000000111111111111111111111
22 0 10 00000000001111111111111111111111
23 0 9 00000000011111111111111111111111
24 0 8 00000000111111111111111111111111
25 0 7 00000001111111111111111111111111
26 0 6 00000011111111111111111111111111
27 0 5 00000111111111111111111111111111
28 0 4 00001111111111111111111111111111
29 0 3 00011111111111111111111111111111
30 0 2 00111111111111111111111111111111
31 0 1 01111111111111111111111111111111
0 bit should move right 1 position each line
0 0 1 01111111111111111111111111111111
1 1 0 10111111111111111111111111111111
2 2 0 11011111111111111111111111111111
3 3 0 11101111111111111111111111111111
4 4 0 11110111111111111111111111111111
5 5 0 11111011111111111111111111111111
6 6 0 11111101111111111111111111111111
7 7 0 11111110111111111111111111111111
8 8 0 11111111011111111111111111111111
9 9 0 11111111101111111111111111111111
10 10 0 11111111110111111111111111111111
11 11 0 11111111111011111111111111111111
12 12 0 11111111111101111111111111111111
13 13 0 11111111111110111111111111111111
14 14 0 11111111111111011111111111111111
15 15 0 11111111111111101111111111111111
16 16 0 11111111111111110111111111111111
17 17 0 11111111111111111011111111111111
18 18 0 11111111111111111101111111111111
19 19 0 11111111111111111110111111111111
20 20 0 11111111111111111111011111111111
21 21 0 11111111111111111111101111111111
22 22 0 11111111111111111111110111111111
23 23 0 11111111111111111111111011111111
24 24 0 11111111111111111111111101111111
25 25 0 11111111111111111111111110111111
26 26 0 11111111111111111111111111011111
27 27 0 11111111111111111111111111101111
28 28 0 11111111111111111111111111110111
29 29 0 11111111111111111111111111111011
30 30 0 11111111111111111111111111111101
31 31 0 11111111111111111111111111111110
1 bit should move right 1 position each line
0 1 0 10000000000000000000000000000000
1 0 1 01000000000000000000000000000000
2 0 2 00100000000000000000000000000000
3 0 3 00010000000000000000000000000000
4 0 4 00001000000000000000000000000000
5 0 5 00000100000000000000000000000000
6 0 6 00000010000000000000000000000000
7 0 7 00000001000000000000000000000000
8 0 8 00000000100000000000000000000000
9 0 9 00000000010000000000000000000000
10 0 10 00000000001000000000000000000000
11 0 11 00000000000100000000000000000000
12 0 12 00000000000010000000000000000000
13 0 13 00000000000001000000000000000000
14 0 14 00000000000000100000000000000000
15 0 15 00000000000000010000000000000000
16 0 16 00000000000000001000000000000000
17 0 17 00000000000000000100000000000000
18 0 18 00000000000000000010000000000000
19 0 19 00000000000000000001000000000000
20 0 20 00000000000000000000100000000000
21 0 21 00000000000000000000010000000000
22 0 22 00000000000000000000001000000000
23 0 23 00000000000000000000000100000000
24 0 24 00000000000000000000000010000000
25 0 25 00000000000000000000000001000000
26 0 26 00000000000000000000000000100000
27 0 27 00000000000000000000000000010000
28 0 28 00000000000000000000000000001000
29 0 29 00000000000000000000000000000100
30 0 30 00000000000000000000000000000010
31 0 31 00000000000000000000000000000001

View File

@ -0,0 +1,439 @@
Testing with TEST_LENGTH = 49
test _bit_byte, _bit_mask, and bitstr_size
i _bit_byte(i) _bit_mask(i) bitstr_size(i)
0 0 1 0
1 0 2 1
2 0 4 1
3 0 8 1
4 0 16 1
5 0 32 1
6 0 64 1
7 0 128 1
8 1 1 1
9 1 2 2
10 1 4 2
11 1 8 2
12 1 16 2
13 1 32 2
14 1 64 2
15 1 128 2
16 2 1 2
17 2 2 3
18 2 4 3
19 2 8 3
20 2 16 3
21 2 32 3
22 2 64 3
23 2 128 3
24 3 1 3
25 3 2 4
26 3 4 4
27 3 8 4
28 3 16 4
29 3 32 4
30 3 64 4
31 3 128 4
32 4 1 4
33 4 2 5
34 4 4 5
35 4 8 5
36 4 16 5
37 4 32 5
38 4 64 5
39 4 128 5
40 5 1 5
41 5 2 6
42 5 4 6
43 5 8 6
44 5 16 6
45 5 32 6
46 5 64 6
47 5 128 6
48 6 1 6
test bit_alloc, clearbits, bit_ffc, bit_ffs
be: 0 -1 0000000000000000000000000000000000000000000000000
is: 0 -1 0000000000000000000000000000000000000000000000000
test bit_set
be: 1 0 1001001001001001001001001001001001001001001001001
is: 1 0 1001001001001001001001001001001001001001001001001
test bit_clear
be: 0 3 0001000001000001000001000001000001000001000001000
is: 0 3 0001000001000001000001000001000001000001000001000
test bit_test using previous bitstring
i bit_test(i)
0 0
1 0
2 0
3 8
4 0
5 0
6 0
7 0
8 0
9 2
10 0
11 0
12 0
13 0
14 0
15 128
16 0
17 0
18 0
19 0
20 0
21 32
22 0
23 0
24 0
25 0
26 0
27 8
28 0
29 0
30 0
31 0
32 0
33 2
34 0
35 0
36 0
37 0
38 0
39 128
40 0
41 0
42 0
43 0
44 0
45 32
46 0
47 0
48 0
test clearbits
be: 0 -1 0000000000000000000000000000000000000000000000000
is: 0 -1 0000000000000000000000000000000000000000000000000
test bit_nset and bit_nclear
be: 0 1 0111111111111111111111111111111111111111111111110
is: 0 1 0111111111111111111111111111111111111111111111110
be: 0 1 0100000000000000000000000000000000000000000000010
is: 0 1 0100000000000000000000000000000000000000000000010
be: 0 -1 0000000000000000000000000000000000000000000000000
is: 0 -1 0000000000000000000000000000000000000000000000000
be: 48 0 1111111111111111111111111111111111111111111111110
is: 48 0 1111111111111111111111111111111111111111111111110
be: 0 -1 0000000000000000000000000000000000000000000000000
is: 0 -1 0000000000000000000000000000000000000000000000000
first 1 bit should move right 1 position each line
0 -1 0 1111111111111111111111111111111111111111111111111
1 0 1 0111111111111111111111111111111111111111111111111
2 0 2 0011111111111111111111111111111111111111111111111
3 0 3 0001111111111111111111111111111111111111111111111
4 0 4 0000111111111111111111111111111111111111111111111
5 0 5 0000011111111111111111111111111111111111111111111
6 0 6 0000001111111111111111111111111111111111111111111
7 0 7 0000000111111111111111111111111111111111111111111
8 0 8 0000000011111111111111111111111111111111111111111
9 0 9 0000000001111111111111111111111111111111111111111
10 0 10 0000000000111111111111111111111111111111111111111
11 0 11 0000000000011111111111111111111111111111111111111
12 0 12 0000000000001111111111111111111111111111111111111
13 0 13 0000000000000111111111111111111111111111111111111
14 0 14 0000000000000011111111111111111111111111111111111
15 0 15 0000000000000001111111111111111111111111111111111
16 0 16 0000000000000000111111111111111111111111111111111
17 0 17 0000000000000000011111111111111111111111111111111
18 0 18 0000000000000000001111111111111111111111111111111
19 0 19 0000000000000000000111111111111111111111111111111
20 0 20 0000000000000000000011111111111111111111111111111
21 0 21 0000000000000000000001111111111111111111111111111
22 0 22 0000000000000000000000111111111111111111111111111
23 0 23 0000000000000000000000011111111111111111111111111
24 0 24 0000000000000000000000001111111111111111111111111
25 0 25 0000000000000000000000000111111111111111111111111
26 0 26 0000000000000000000000000011111111111111111111111
27 0 27 0000000000000000000000000001111111111111111111111
28 0 28 0000000000000000000000000000111111111111111111111
29 0 29 0000000000000000000000000000011111111111111111111
30 0 30 0000000000000000000000000000001111111111111111111
31 0 31 0000000000000000000000000000000111111111111111111
32 0 32 0000000000000000000000000000000011111111111111111
33 0 33 0000000000000000000000000000000001111111111111111
34 0 34 0000000000000000000000000000000000111111111111111
35 0 35 0000000000000000000000000000000000011111111111111
36 0 36 0000000000000000000000000000000000001111111111111
37 0 37 0000000000000000000000000000000000000111111111111
38 0 38 0000000000000000000000000000000000000011111111111
39 0 39 0000000000000000000000000000000000000001111111111
40 0 40 0000000000000000000000000000000000000000111111111
41 0 41 0000000000000000000000000000000000000000011111111
42 0 42 0000000000000000000000000000000000000000001111111
43 0 43 0000000000000000000000000000000000000000000111111
44 0 44 0000000000000000000000000000000000000000000011111
45 0 45 0000000000000000000000000000000000000000000001111
46 0 46 0000000000000000000000000000000000000000000000111
47 0 47 0000000000000000000000000000000000000000000000011
48 0 48 0000000000000000000000000000000000000000000000001
first 0 bit should move right 1 position each line
0 0 -1 0000000000000000000000000000000000000000000000000
1 1 0 1000000000000000000000000000000000000000000000000
2 2 0 1100000000000000000000000000000000000000000000000
3 3 0 1110000000000000000000000000000000000000000000000
4 4 0 1111000000000000000000000000000000000000000000000
5 5 0 1111100000000000000000000000000000000000000000000
6 6 0 1111110000000000000000000000000000000000000000000
7 7 0 1111111000000000000000000000000000000000000000000
8 8 0 1111111100000000000000000000000000000000000000000
9 9 0 1111111110000000000000000000000000000000000000000
10 10 0 1111111111000000000000000000000000000000000000000
11 11 0 1111111111100000000000000000000000000000000000000
12 12 0 1111111111110000000000000000000000000000000000000
13 13 0 1111111111111000000000000000000000000000000000000
14 14 0 1111111111111100000000000000000000000000000000000
15 15 0 1111111111111110000000000000000000000000000000000
16 16 0 1111111111111111000000000000000000000000000000000
17 17 0 1111111111111111100000000000000000000000000000000
18 18 0 1111111111111111110000000000000000000000000000000
19 19 0 1111111111111111111000000000000000000000000000000
20 20 0 1111111111111111111100000000000000000000000000000
21 21 0 1111111111111111111110000000000000000000000000000
22 22 0 1111111111111111111111000000000000000000000000000
23 23 0 1111111111111111111111100000000000000000000000000
24 24 0 1111111111111111111111110000000000000000000000000
25 25 0 1111111111111111111111111000000000000000000000000
26 26 0 1111111111111111111111111100000000000000000000000
27 27 0 1111111111111111111111111110000000000000000000000
28 28 0 1111111111111111111111111111000000000000000000000
29 29 0 1111111111111111111111111111100000000000000000000
30 30 0 1111111111111111111111111111110000000000000000000
31 31 0 1111111111111111111111111111111000000000000000000
32 32 0 1111111111111111111111111111111100000000000000000
33 33 0 1111111111111111111111111111111110000000000000000
34 34 0 1111111111111111111111111111111111000000000000000
35 35 0 1111111111111111111111111111111111100000000000000
36 36 0 1111111111111111111111111111111111110000000000000
37 37 0 1111111111111111111111111111111111111000000000000
38 38 0 1111111111111111111111111111111111111100000000000
39 39 0 1111111111111111111111111111111111111110000000000
40 40 0 1111111111111111111111111111111111111111000000000
41 41 0 1111111111111111111111111111111111111111100000000
42 42 0 1111111111111111111111111111111111111111110000000
43 43 0 1111111111111111111111111111111111111111111000000
44 44 0 1111111111111111111111111111111111111111111100000
45 45 0 1111111111111111111111111111111111111111111110000
46 46 0 1111111111111111111111111111111111111111111111000
47 47 0 1111111111111111111111111111111111111111111111100
48 48 0 1111111111111111111111111111111111111111111111110
first 0 bit should move left 1 position each line
0 -1 0 1111111111111111111111111111111111111111111111111
1 48 0 1111111111111111111111111111111111111111111111110
2 47 0 1111111111111111111111111111111111111111111111100
3 46 0 1111111111111111111111111111111111111111111111000
4 45 0 1111111111111111111111111111111111111111111110000
5 44 0 1111111111111111111111111111111111111111111100000
6 43 0 1111111111111111111111111111111111111111111000000
7 42 0 1111111111111111111111111111111111111111110000000
8 41 0 1111111111111111111111111111111111111111100000000
9 40 0 1111111111111111111111111111111111111111000000000
10 39 0 1111111111111111111111111111111111111110000000000
11 38 0 1111111111111111111111111111111111111100000000000
12 37 0 1111111111111111111111111111111111111000000000000
13 36 0 1111111111111111111111111111111111110000000000000
14 35 0 1111111111111111111111111111111111100000000000000
15 34 0 1111111111111111111111111111111111000000000000000
16 33 0 1111111111111111111111111111111110000000000000000
17 32 0 1111111111111111111111111111111100000000000000000
18 31 0 1111111111111111111111111111111000000000000000000
19 30 0 1111111111111111111111111111110000000000000000000
20 29 0 1111111111111111111111111111100000000000000000000
21 28 0 1111111111111111111111111111000000000000000000000
22 27 0 1111111111111111111111111110000000000000000000000
23 26 0 1111111111111111111111111100000000000000000000000
24 25 0 1111111111111111111111111000000000000000000000000
25 24 0 1111111111111111111111110000000000000000000000000
26 23 0 1111111111111111111111100000000000000000000000000
27 22 0 1111111111111111111111000000000000000000000000000
28 21 0 1111111111111111111110000000000000000000000000000
29 20 0 1111111111111111111100000000000000000000000000000
30 19 0 1111111111111111111000000000000000000000000000000
31 18 0 1111111111111111110000000000000000000000000000000
32 17 0 1111111111111111100000000000000000000000000000000
33 16 0 1111111111111111000000000000000000000000000000000
34 15 0 1111111111111110000000000000000000000000000000000
35 14 0 1111111111111100000000000000000000000000000000000
36 13 0 1111111111111000000000000000000000000000000000000
37 12 0 1111111111110000000000000000000000000000000000000
38 11 0 1111111111100000000000000000000000000000000000000
39 10 0 1111111111000000000000000000000000000000000000000
40 9 0 1111111110000000000000000000000000000000000000000
41 8 0 1111111100000000000000000000000000000000000000000
42 7 0 1111111000000000000000000000000000000000000000000
43 6 0 1111110000000000000000000000000000000000000000000
44 5 0 1111100000000000000000000000000000000000000000000
45 4 0 1111000000000000000000000000000000000000000000000
46 3 0 1110000000000000000000000000000000000000000000000
47 2 0 1100000000000000000000000000000000000000000000000
48 1 0 1000000000000000000000000000000000000000000000000
first 1 bit should move left 1 position each line
0 0 -1 0000000000000000000000000000000000000000000000000
1 0 48 0000000000000000000000000000000000000000000000001
2 0 47 0000000000000000000000000000000000000000000000011
3 0 46 0000000000000000000000000000000000000000000000111
4 0 45 0000000000000000000000000000000000000000000001111
5 0 44 0000000000000000000000000000000000000000000011111
6 0 43 0000000000000000000000000000000000000000000111111
7 0 42 0000000000000000000000000000000000000000001111111
8 0 41 0000000000000000000000000000000000000000011111111
9 0 40 0000000000000000000000000000000000000000111111111
10 0 39 0000000000000000000000000000000000000001111111111
11 0 38 0000000000000000000000000000000000000011111111111
12 0 37 0000000000000000000000000000000000000111111111111
13 0 36 0000000000000000000000000000000000001111111111111
14 0 35 0000000000000000000000000000000000011111111111111
15 0 34 0000000000000000000000000000000000111111111111111
16 0 33 0000000000000000000000000000000001111111111111111
17 0 32 0000000000000000000000000000000011111111111111111
18 0 31 0000000000000000000000000000000111111111111111111
19 0 30 0000000000000000000000000000001111111111111111111
20 0 29 0000000000000000000000000000011111111111111111111
21 0 28 0000000000000000000000000000111111111111111111111
22 0 27 0000000000000000000000000001111111111111111111111
23 0 26 0000000000000000000000000011111111111111111111111
24 0 25 0000000000000000000000000111111111111111111111111
25 0 24 0000000000000000000000001111111111111111111111111
26 0 23 0000000000000000000000011111111111111111111111111
27 0 22 0000000000000000000000111111111111111111111111111
28 0 21 0000000000000000000001111111111111111111111111111
29 0 20 0000000000000000000011111111111111111111111111111
30 0 19 0000000000000000000111111111111111111111111111111
31 0 18 0000000000000000001111111111111111111111111111111
32 0 17 0000000000000000011111111111111111111111111111111
33 0 16 0000000000000000111111111111111111111111111111111
34 0 15 0000000000000001111111111111111111111111111111111
35 0 14 0000000000000011111111111111111111111111111111111
36 0 13 0000000000000111111111111111111111111111111111111
37 0 12 0000000000001111111111111111111111111111111111111
38 0 11 0000000000011111111111111111111111111111111111111
39 0 10 0000000000111111111111111111111111111111111111111
40 0 9 0000000001111111111111111111111111111111111111111
41 0 8 0000000011111111111111111111111111111111111111111
42 0 7 0000000111111111111111111111111111111111111111111
43 0 6 0000001111111111111111111111111111111111111111111
44 0 5 0000011111111111111111111111111111111111111111111
45 0 4 0000111111111111111111111111111111111111111111111
46 0 3 0001111111111111111111111111111111111111111111111
47 0 2 0011111111111111111111111111111111111111111111111
48 0 1 0111111111111111111111111111111111111111111111111
0 bit should move right 1 position each line
0 0 1 0111111111111111111111111111111111111111111111111
1 1 0 1011111111111111111111111111111111111111111111111
2 2 0 1101111111111111111111111111111111111111111111111
3 3 0 1110111111111111111111111111111111111111111111111
4 4 0 1111011111111111111111111111111111111111111111111
5 5 0 1111101111111111111111111111111111111111111111111
6 6 0 1111110111111111111111111111111111111111111111111
7 7 0 1111111011111111111111111111111111111111111111111
8 8 0 1111111101111111111111111111111111111111111111111
9 9 0 1111111110111111111111111111111111111111111111111
10 10 0 1111111111011111111111111111111111111111111111111
11 11 0 1111111111101111111111111111111111111111111111111
12 12 0 1111111111110111111111111111111111111111111111111
13 13 0 1111111111111011111111111111111111111111111111111
14 14 0 1111111111111101111111111111111111111111111111111
15 15 0 1111111111111110111111111111111111111111111111111
16 16 0 1111111111111111011111111111111111111111111111111
17 17 0 1111111111111111101111111111111111111111111111111
18 18 0 1111111111111111110111111111111111111111111111111
19 19 0 1111111111111111111011111111111111111111111111111
20 20 0 1111111111111111111101111111111111111111111111111
21 21 0 1111111111111111111110111111111111111111111111111
22 22 0 1111111111111111111111011111111111111111111111111
23 23 0 1111111111111111111111101111111111111111111111111
24 24 0 1111111111111111111111110111111111111111111111111
25 25 0 1111111111111111111111111011111111111111111111111
26 26 0 1111111111111111111111111101111111111111111111111
27 27 0 1111111111111111111111111110111111111111111111111
28 28 0 1111111111111111111111111111011111111111111111111
29 29 0 1111111111111111111111111111101111111111111111111
30 30 0 1111111111111111111111111111110111111111111111111
31 31 0 1111111111111111111111111111111011111111111111111
32 32 0 1111111111111111111111111111111101111111111111111
33 33 0 1111111111111111111111111111111110111111111111111
34 34 0 1111111111111111111111111111111111011111111111111
35 35 0 1111111111111111111111111111111111101111111111111
36 36 0 1111111111111111111111111111111111110111111111111
37 37 0 1111111111111111111111111111111111111011111111111
38 38 0 1111111111111111111111111111111111111101111111111
39 39 0 1111111111111111111111111111111111111110111111111
40 40 0 1111111111111111111111111111111111111111011111111
41 41 0 1111111111111111111111111111111111111111101111111
42 42 0 1111111111111111111111111111111111111111110111111
43 43 0 1111111111111111111111111111111111111111111011111
44 44 0 1111111111111111111111111111111111111111111101111
45 45 0 1111111111111111111111111111111111111111111110111
46 46 0 1111111111111111111111111111111111111111111111011
47 47 0 1111111111111111111111111111111111111111111111101
48 48 0 1111111111111111111111111111111111111111111111110
1 bit should move right 1 position each line
0 1 0 1000000000000000000000000000000000000000000000000
1 0 1 0100000000000000000000000000000000000000000000000
2 0 2 0010000000000000000000000000000000000000000000000
3 0 3 0001000000000000000000000000000000000000000000000
4 0 4 0000100000000000000000000000000000000000000000000
5 0 5 0000010000000000000000000000000000000000000000000
6 0 6 0000001000000000000000000000000000000000000000000
7 0 7 0000000100000000000000000000000000000000000000000
8 0 8 0000000010000000000000000000000000000000000000000
9 0 9 0000000001000000000000000000000000000000000000000
10 0 10 0000000000100000000000000000000000000000000000000
11 0 11 0000000000010000000000000000000000000000000000000
12 0 12 0000000000001000000000000000000000000000000000000
13 0 13 0000000000000100000000000000000000000000000000000
14 0 14 0000000000000010000000000000000000000000000000000
15 0 15 0000000000000001000000000000000000000000000000000
16 0 16 0000000000000000100000000000000000000000000000000
17 0 17 0000000000000000010000000000000000000000000000000
18 0 18 0000000000000000001000000000000000000000000000000
19 0 19 0000000000000000000100000000000000000000000000000
20 0 20 0000000000000000000010000000000000000000000000000
21 0 21 0000000000000000000001000000000000000000000000000
22 0 22 0000000000000000000000100000000000000000000000000
23 0 23 0000000000000000000000010000000000000000000000000
24 0 24 0000000000000000000000001000000000000000000000000
25 0 25 0000000000000000000000000100000000000000000000000
26 0 26 0000000000000000000000000010000000000000000000000
27 0 27 0000000000000000000000000001000000000000000000000
28 0 28 0000000000000000000000000000100000000000000000000
29 0 29 0000000000000000000000000000010000000000000000000
30 0 30 0000000000000000000000000000001000000000000000000
31 0 31 0000000000000000000000000000000100000000000000000
32 0 32 0000000000000000000000000000000010000000000000000
33 0 33 0000000000000000000000000000000001000000000000000
34 0 34 0000000000000000000000000000000000100000000000000
35 0 35 0000000000000000000000000000000000010000000000000
36 0 36 0000000000000000000000000000000000001000000000000
37 0 37 0000000000000000000000000000000000000100000000000
38 0 38 0000000000000000000000000000000000000010000000000
39 0 39 0000000000000000000000000000000000000001000000000
40 0 40 0000000000000000000000000000000000000000100000000
41 0 41 0000000000000000000000000000000000000000010000000
42 0 42 0000000000000000000000000000000000000000001000000
43 0 43 0000000000000000000000000000000000000000000100000
44 0 44 0000000000000000000000000000000000000000000010000
45 0 45 0000000000000000000000000000000000000000000001000
46 0 46 0000000000000000000000000000000000000000000000100
47 0 47 0000000000000000000000000000000000000000000000010
48 0 48 0000000000000000000000000000000000000000000000001

View File

@ -0,0 +1,559 @@
Testing with TEST_LENGTH = 64
test _bit_byte, _bit_mask, and bitstr_size
i _bit_byte(i) _bit_mask(i) bitstr_size(i)
0 0 1 0
1 0 2 1
2 0 4 1
3 0 8 1
4 0 16 1
5 0 32 1
6 0 64 1
7 0 128 1
8 1 1 1
9 1 2 2
10 1 4 2
11 1 8 2
12 1 16 2
13 1 32 2
14 1 64 2
15 1 128 2
16 2 1 2
17 2 2 3
18 2 4 3
19 2 8 3
20 2 16 3
21 2 32 3
22 2 64 3
23 2 128 3
24 3 1 3
25 3 2 4
26 3 4 4
27 3 8 4
28 3 16 4
29 3 32 4
30 3 64 4
31 3 128 4
32 4 1 4
33 4 2 5
34 4 4 5
35 4 8 5
36 4 16 5
37 4 32 5
38 4 64 5
39 4 128 5
40 5 1 5
41 5 2 6
42 5 4 6
43 5 8 6
44 5 16 6
45 5 32 6
46 5 64 6
47 5 128 6
48 6 1 6
49 6 2 7
50 6 4 7
51 6 8 7
52 6 16 7
53 6 32 7
54 6 64 7
55 6 128 7
56 7 1 7
57 7 2 8
58 7 4 8
59 7 8 8
60 7 16 8
61 7 32 8
62 7 64 8
63 7 128 8
test bit_alloc, clearbits, bit_ffc, bit_ffs
be: 0 -1 0000000000000000000000000000000000000000000000000000000000000000
is: 0 -1 0000000000000000000000000000000000000000000000000000000000000000
test bit_set
be: 1 0 1001001001001001001001001001001001001001001001001001001001001001
is: 1 0 1001001001001001001001001001001001001001001001001001001001001001
test bit_clear
be: 0 3 0001000001000001000001000001000001000001000001000001000001000001
is: 0 3 0001000001000001000001000001000001000001000001000001000001000001
test bit_test using previous bitstring
i bit_test(i)
0 0
1 0
2 0
3 8
4 0
5 0
6 0
7 0
8 0
9 2
10 0
11 0
12 0
13 0
14 0
15 128
16 0
17 0
18 0
19 0
20 0
21 32
22 0
23 0
24 0
25 0
26 0
27 8
28 0
29 0
30 0
31 0
32 0
33 2
34 0
35 0
36 0
37 0
38 0
39 128
40 0
41 0
42 0
43 0
44 0
45 32
46 0
47 0
48 0
49 0
50 0
51 8
52 0
53 0
54 0
55 0
56 0
57 2
58 0
59 0
60 0
61 0
62 0
63 128
test clearbits
be: 0 -1 0000000000000000000000000000000000000000000000000000000000000000
is: 0 -1 0000000000000000000000000000000000000000000000000000000000000000
test bit_nset and bit_nclear
be: 0 1 0111111111111111111111111111111111111111111111111111111111111110
is: 0 1 0111111111111111111111111111111111111111111111111111111111111110
be: 0 1 0100000000000000000000000000000000000000000000000000000000000010
is: 0 1 0100000000000000000000000000000000000000000000000000000000000010
be: 0 -1 0000000000000000000000000000000000000000000000000000000000000000
is: 0 -1 0000000000000000000000000000000000000000000000000000000000000000
be: 63 0 1111111111111111111111111111111111111111111111111111111111111110
is: 63 0 1111111111111111111111111111111111111111111111111111111111111110
be: 0 -1 0000000000000000000000000000000000000000000000000000000000000000
is: 0 -1 0000000000000000000000000000000000000000000000000000000000000000
first 1 bit should move right 1 position each line
0 -1 0 1111111111111111111111111111111111111111111111111111111111111111
1 0 1 0111111111111111111111111111111111111111111111111111111111111111
2 0 2 0011111111111111111111111111111111111111111111111111111111111111
3 0 3 0001111111111111111111111111111111111111111111111111111111111111
4 0 4 0000111111111111111111111111111111111111111111111111111111111111
5 0 5 0000011111111111111111111111111111111111111111111111111111111111
6 0 6 0000001111111111111111111111111111111111111111111111111111111111
7 0 7 0000000111111111111111111111111111111111111111111111111111111111
8 0 8 0000000011111111111111111111111111111111111111111111111111111111
9 0 9 0000000001111111111111111111111111111111111111111111111111111111
10 0 10 0000000000111111111111111111111111111111111111111111111111111111
11 0 11 0000000000011111111111111111111111111111111111111111111111111111
12 0 12 0000000000001111111111111111111111111111111111111111111111111111
13 0 13 0000000000000111111111111111111111111111111111111111111111111111
14 0 14 0000000000000011111111111111111111111111111111111111111111111111
15 0 15 0000000000000001111111111111111111111111111111111111111111111111
16 0 16 0000000000000000111111111111111111111111111111111111111111111111
17 0 17 0000000000000000011111111111111111111111111111111111111111111111
18 0 18 0000000000000000001111111111111111111111111111111111111111111111
19 0 19 0000000000000000000111111111111111111111111111111111111111111111
20 0 20 0000000000000000000011111111111111111111111111111111111111111111
21 0 21 0000000000000000000001111111111111111111111111111111111111111111
22 0 22 0000000000000000000000111111111111111111111111111111111111111111
23 0 23 0000000000000000000000011111111111111111111111111111111111111111
24 0 24 0000000000000000000000001111111111111111111111111111111111111111
25 0 25 0000000000000000000000000111111111111111111111111111111111111111
26 0 26 0000000000000000000000000011111111111111111111111111111111111111
27 0 27 0000000000000000000000000001111111111111111111111111111111111111
28 0 28 0000000000000000000000000000111111111111111111111111111111111111
29 0 29 0000000000000000000000000000011111111111111111111111111111111111
30 0 30 0000000000000000000000000000001111111111111111111111111111111111
31 0 31 0000000000000000000000000000000111111111111111111111111111111111
32 0 32 0000000000000000000000000000000011111111111111111111111111111111
33 0 33 0000000000000000000000000000000001111111111111111111111111111111
34 0 34 0000000000000000000000000000000000111111111111111111111111111111
35 0 35 0000000000000000000000000000000000011111111111111111111111111111
36 0 36 0000000000000000000000000000000000001111111111111111111111111111
37 0 37 0000000000000000000000000000000000000111111111111111111111111111
38 0 38 0000000000000000000000000000000000000011111111111111111111111111
39 0 39 0000000000000000000000000000000000000001111111111111111111111111
40 0 40 0000000000000000000000000000000000000000111111111111111111111111
41 0 41 0000000000000000000000000000000000000000011111111111111111111111
42 0 42 0000000000000000000000000000000000000000001111111111111111111111
43 0 43 0000000000000000000000000000000000000000000111111111111111111111
44 0 44 0000000000000000000000000000000000000000000011111111111111111111
45 0 45 0000000000000000000000000000000000000000000001111111111111111111
46 0 46 0000000000000000000000000000000000000000000000111111111111111111
47 0 47 0000000000000000000000000000000000000000000000011111111111111111
48 0 48 0000000000000000000000000000000000000000000000001111111111111111
49 0 49 0000000000000000000000000000000000000000000000000111111111111111
50 0 50 0000000000000000000000000000000000000000000000000011111111111111
51 0 51 0000000000000000000000000000000000000000000000000001111111111111
52 0 52 0000000000000000000000000000000000000000000000000000111111111111
53 0 53 0000000000000000000000000000000000000000000000000000011111111111
54 0 54 0000000000000000000000000000000000000000000000000000001111111111
55 0 55 0000000000000000000000000000000000000000000000000000000111111111
56 0 56 0000000000000000000000000000000000000000000000000000000011111111
57 0 57 0000000000000000000000000000000000000000000000000000000001111111
58 0 58 0000000000000000000000000000000000000000000000000000000000111111
59 0 59 0000000000000000000000000000000000000000000000000000000000011111
60 0 60 0000000000000000000000000000000000000000000000000000000000001111
61 0 61 0000000000000000000000000000000000000000000000000000000000000111
62 0 62 0000000000000000000000000000000000000000000000000000000000000011
63 0 63 0000000000000000000000000000000000000000000000000000000000000001
first 0 bit should move right 1 position each line
0 0 -1 0000000000000000000000000000000000000000000000000000000000000000
1 1 0 1000000000000000000000000000000000000000000000000000000000000000
2 2 0 1100000000000000000000000000000000000000000000000000000000000000
3 3 0 1110000000000000000000000000000000000000000000000000000000000000
4 4 0 1111000000000000000000000000000000000000000000000000000000000000
5 5 0 1111100000000000000000000000000000000000000000000000000000000000
6 6 0 1111110000000000000000000000000000000000000000000000000000000000
7 7 0 1111111000000000000000000000000000000000000000000000000000000000
8 8 0 1111111100000000000000000000000000000000000000000000000000000000
9 9 0 1111111110000000000000000000000000000000000000000000000000000000
10 10 0 1111111111000000000000000000000000000000000000000000000000000000
11 11 0 1111111111100000000000000000000000000000000000000000000000000000
12 12 0 1111111111110000000000000000000000000000000000000000000000000000
13 13 0 1111111111111000000000000000000000000000000000000000000000000000
14 14 0 1111111111111100000000000000000000000000000000000000000000000000
15 15 0 1111111111111110000000000000000000000000000000000000000000000000
16 16 0 1111111111111111000000000000000000000000000000000000000000000000
17 17 0 1111111111111111100000000000000000000000000000000000000000000000
18 18 0 1111111111111111110000000000000000000000000000000000000000000000
19 19 0 1111111111111111111000000000000000000000000000000000000000000000
20 20 0 1111111111111111111100000000000000000000000000000000000000000000
21 21 0 1111111111111111111110000000000000000000000000000000000000000000
22 22 0 1111111111111111111111000000000000000000000000000000000000000000
23 23 0 1111111111111111111111100000000000000000000000000000000000000000
24 24 0 1111111111111111111111110000000000000000000000000000000000000000
25 25 0 1111111111111111111111111000000000000000000000000000000000000000
26 26 0 1111111111111111111111111100000000000000000000000000000000000000
27 27 0 1111111111111111111111111110000000000000000000000000000000000000
28 28 0 1111111111111111111111111111000000000000000000000000000000000000
29 29 0 1111111111111111111111111111100000000000000000000000000000000000
30 30 0 1111111111111111111111111111110000000000000000000000000000000000
31 31 0 1111111111111111111111111111111000000000000000000000000000000000
32 32 0 1111111111111111111111111111111100000000000000000000000000000000
33 33 0 1111111111111111111111111111111110000000000000000000000000000000
34 34 0 1111111111111111111111111111111111000000000000000000000000000000
35 35 0 1111111111111111111111111111111111100000000000000000000000000000
36 36 0 1111111111111111111111111111111111110000000000000000000000000000
37 37 0 1111111111111111111111111111111111111000000000000000000000000000
38 38 0 1111111111111111111111111111111111111100000000000000000000000000
39 39 0 1111111111111111111111111111111111111110000000000000000000000000
40 40 0 1111111111111111111111111111111111111111000000000000000000000000
41 41 0 1111111111111111111111111111111111111111100000000000000000000000
42 42 0 1111111111111111111111111111111111111111110000000000000000000000
43 43 0 1111111111111111111111111111111111111111111000000000000000000000
44 44 0 1111111111111111111111111111111111111111111100000000000000000000
45 45 0 1111111111111111111111111111111111111111111110000000000000000000
46 46 0 1111111111111111111111111111111111111111111111000000000000000000
47 47 0 1111111111111111111111111111111111111111111111100000000000000000
48 48 0 1111111111111111111111111111111111111111111111110000000000000000
49 49 0 1111111111111111111111111111111111111111111111111000000000000000
50 50 0 1111111111111111111111111111111111111111111111111100000000000000
51 51 0 1111111111111111111111111111111111111111111111111110000000000000
52 52 0 1111111111111111111111111111111111111111111111111111000000000000
53 53 0 1111111111111111111111111111111111111111111111111111100000000000
54 54 0 1111111111111111111111111111111111111111111111111111110000000000
55 55 0 1111111111111111111111111111111111111111111111111111111000000000
56 56 0 1111111111111111111111111111111111111111111111111111111100000000
57 57 0 1111111111111111111111111111111111111111111111111111111110000000
58 58 0 1111111111111111111111111111111111111111111111111111111111000000
59 59 0 1111111111111111111111111111111111111111111111111111111111100000
60 60 0 1111111111111111111111111111111111111111111111111111111111110000
61 61 0 1111111111111111111111111111111111111111111111111111111111111000
62 62 0 1111111111111111111111111111111111111111111111111111111111111100
63 63 0 1111111111111111111111111111111111111111111111111111111111111110
first 0 bit should move left 1 position each line
0 -1 0 1111111111111111111111111111111111111111111111111111111111111111
1 63 0 1111111111111111111111111111111111111111111111111111111111111110
2 62 0 1111111111111111111111111111111111111111111111111111111111111100
3 61 0 1111111111111111111111111111111111111111111111111111111111111000
4 60 0 1111111111111111111111111111111111111111111111111111111111110000
5 59 0 1111111111111111111111111111111111111111111111111111111111100000
6 58 0 1111111111111111111111111111111111111111111111111111111111000000
7 57 0 1111111111111111111111111111111111111111111111111111111110000000
8 56 0 1111111111111111111111111111111111111111111111111111111100000000
9 55 0 1111111111111111111111111111111111111111111111111111111000000000
10 54 0 1111111111111111111111111111111111111111111111111111110000000000
11 53 0 1111111111111111111111111111111111111111111111111111100000000000
12 52 0 1111111111111111111111111111111111111111111111111111000000000000
13 51 0 1111111111111111111111111111111111111111111111111110000000000000
14 50 0 1111111111111111111111111111111111111111111111111100000000000000
15 49 0 1111111111111111111111111111111111111111111111111000000000000000
16 48 0 1111111111111111111111111111111111111111111111110000000000000000
17 47 0 1111111111111111111111111111111111111111111111100000000000000000
18 46 0 1111111111111111111111111111111111111111111111000000000000000000
19 45 0 1111111111111111111111111111111111111111111110000000000000000000
20 44 0 1111111111111111111111111111111111111111111100000000000000000000
21 43 0 1111111111111111111111111111111111111111111000000000000000000000
22 42 0 1111111111111111111111111111111111111111110000000000000000000000
23 41 0 1111111111111111111111111111111111111111100000000000000000000000
24 40 0 1111111111111111111111111111111111111111000000000000000000000000
25 39 0 1111111111111111111111111111111111111110000000000000000000000000
26 38 0 1111111111111111111111111111111111111100000000000000000000000000
27 37 0 1111111111111111111111111111111111111000000000000000000000000000
28 36 0 1111111111111111111111111111111111110000000000000000000000000000
29 35 0 1111111111111111111111111111111111100000000000000000000000000000
30 34 0 1111111111111111111111111111111111000000000000000000000000000000
31 33 0 1111111111111111111111111111111110000000000000000000000000000000
32 32 0 1111111111111111111111111111111100000000000000000000000000000000
33 31 0 1111111111111111111111111111111000000000000000000000000000000000
34 30 0 1111111111111111111111111111110000000000000000000000000000000000
35 29 0 1111111111111111111111111111100000000000000000000000000000000000
36 28 0 1111111111111111111111111111000000000000000000000000000000000000
37 27 0 1111111111111111111111111110000000000000000000000000000000000000
38 26 0 1111111111111111111111111100000000000000000000000000000000000000
39 25 0 1111111111111111111111111000000000000000000000000000000000000000
40 24 0 1111111111111111111111110000000000000000000000000000000000000000
41 23 0 1111111111111111111111100000000000000000000000000000000000000000
42 22 0 1111111111111111111111000000000000000000000000000000000000000000
43 21 0 1111111111111111111110000000000000000000000000000000000000000000
44 20 0 1111111111111111111100000000000000000000000000000000000000000000
45 19 0 1111111111111111111000000000000000000000000000000000000000000000
46 18 0 1111111111111111110000000000000000000000000000000000000000000000
47 17 0 1111111111111111100000000000000000000000000000000000000000000000
48 16 0 1111111111111111000000000000000000000000000000000000000000000000
49 15 0 1111111111111110000000000000000000000000000000000000000000000000
50 14 0 1111111111111100000000000000000000000000000000000000000000000000
51 13 0 1111111111111000000000000000000000000000000000000000000000000000
52 12 0 1111111111110000000000000000000000000000000000000000000000000000
53 11 0 1111111111100000000000000000000000000000000000000000000000000000
54 10 0 1111111111000000000000000000000000000000000000000000000000000000
55 9 0 1111111110000000000000000000000000000000000000000000000000000000
56 8 0 1111111100000000000000000000000000000000000000000000000000000000
57 7 0 1111111000000000000000000000000000000000000000000000000000000000
58 6 0 1111110000000000000000000000000000000000000000000000000000000000
59 5 0 1111100000000000000000000000000000000000000000000000000000000000
60 4 0 1111000000000000000000000000000000000000000000000000000000000000
61 3 0 1110000000000000000000000000000000000000000000000000000000000000
62 2 0 1100000000000000000000000000000000000000000000000000000000000000
63 1 0 1000000000000000000000000000000000000000000000000000000000000000
first 1 bit should move left 1 position each line
0 0 -1 0000000000000000000000000000000000000000000000000000000000000000
1 0 63 0000000000000000000000000000000000000000000000000000000000000001
2 0 62 0000000000000000000000000000000000000000000000000000000000000011
3 0 61 0000000000000000000000000000000000000000000000000000000000000111
4 0 60 0000000000000000000000000000000000000000000000000000000000001111
5 0 59 0000000000000000000000000000000000000000000000000000000000011111
6 0 58 0000000000000000000000000000000000000000000000000000000000111111
7 0 57 0000000000000000000000000000000000000000000000000000000001111111
8 0 56 0000000000000000000000000000000000000000000000000000000011111111
9 0 55 0000000000000000000000000000000000000000000000000000000111111111
10 0 54 0000000000000000000000000000000000000000000000000000001111111111
11 0 53 0000000000000000000000000000000000000000000000000000011111111111
12 0 52 0000000000000000000000000000000000000000000000000000111111111111
13 0 51 0000000000000000000000000000000000000000000000000001111111111111
14 0 50 0000000000000000000000000000000000000000000000000011111111111111
15 0 49 0000000000000000000000000000000000000000000000000111111111111111
16 0 48 0000000000000000000000000000000000000000000000001111111111111111
17 0 47 0000000000000000000000000000000000000000000000011111111111111111
18 0 46 0000000000000000000000000000000000000000000000111111111111111111
19 0 45 0000000000000000000000000000000000000000000001111111111111111111
20 0 44 0000000000000000000000000000000000000000000011111111111111111111
21 0 43 0000000000000000000000000000000000000000000111111111111111111111
22 0 42 0000000000000000000000000000000000000000001111111111111111111111
23 0 41 0000000000000000000000000000000000000000011111111111111111111111
24 0 40 0000000000000000000000000000000000000000111111111111111111111111
25 0 39 0000000000000000000000000000000000000001111111111111111111111111
26 0 38 0000000000000000000000000000000000000011111111111111111111111111
27 0 37 0000000000000000000000000000000000000111111111111111111111111111
28 0 36 0000000000000000000000000000000000001111111111111111111111111111
29 0 35 0000000000000000000000000000000000011111111111111111111111111111
30 0 34 0000000000000000000000000000000000111111111111111111111111111111
31 0 33 0000000000000000000000000000000001111111111111111111111111111111
32 0 32 0000000000000000000000000000000011111111111111111111111111111111
33 0 31 0000000000000000000000000000000111111111111111111111111111111111
34 0 30 0000000000000000000000000000001111111111111111111111111111111111
35 0 29 0000000000000000000000000000011111111111111111111111111111111111
36 0 28 0000000000000000000000000000111111111111111111111111111111111111
37 0 27 0000000000000000000000000001111111111111111111111111111111111111
38 0 26 0000000000000000000000000011111111111111111111111111111111111111
39 0 25 0000000000000000000000000111111111111111111111111111111111111111
40 0 24 0000000000000000000000001111111111111111111111111111111111111111
41 0 23 0000000000000000000000011111111111111111111111111111111111111111
42 0 22 0000000000000000000000111111111111111111111111111111111111111111
43 0 21 0000000000000000000001111111111111111111111111111111111111111111
44 0 20 0000000000000000000011111111111111111111111111111111111111111111
45 0 19 0000000000000000000111111111111111111111111111111111111111111111
46 0 18 0000000000000000001111111111111111111111111111111111111111111111
47 0 17 0000000000000000011111111111111111111111111111111111111111111111
48 0 16 0000000000000000111111111111111111111111111111111111111111111111
49 0 15 0000000000000001111111111111111111111111111111111111111111111111
50 0 14 0000000000000011111111111111111111111111111111111111111111111111
51 0 13 0000000000000111111111111111111111111111111111111111111111111111
52 0 12 0000000000001111111111111111111111111111111111111111111111111111
53 0 11 0000000000011111111111111111111111111111111111111111111111111111
54 0 10 0000000000111111111111111111111111111111111111111111111111111111
55 0 9 0000000001111111111111111111111111111111111111111111111111111111
56 0 8 0000000011111111111111111111111111111111111111111111111111111111
57 0 7 0000000111111111111111111111111111111111111111111111111111111111
58 0 6 0000001111111111111111111111111111111111111111111111111111111111
59 0 5 0000011111111111111111111111111111111111111111111111111111111111
60 0 4 0000111111111111111111111111111111111111111111111111111111111111
61 0 3 0001111111111111111111111111111111111111111111111111111111111111
62 0 2 0011111111111111111111111111111111111111111111111111111111111111
63 0 1 0111111111111111111111111111111111111111111111111111111111111111
0 bit should move right 1 position each line
0 0 1 0111111111111111111111111111111111111111111111111111111111111111
1 1 0 1011111111111111111111111111111111111111111111111111111111111111
2 2 0 1101111111111111111111111111111111111111111111111111111111111111
3 3 0 1110111111111111111111111111111111111111111111111111111111111111
4 4 0 1111011111111111111111111111111111111111111111111111111111111111
5 5 0 1111101111111111111111111111111111111111111111111111111111111111
6 6 0 1111110111111111111111111111111111111111111111111111111111111111
7 7 0 1111111011111111111111111111111111111111111111111111111111111111
8 8 0 1111111101111111111111111111111111111111111111111111111111111111
9 9 0 1111111110111111111111111111111111111111111111111111111111111111
10 10 0 1111111111011111111111111111111111111111111111111111111111111111
11 11 0 1111111111101111111111111111111111111111111111111111111111111111
12 12 0 1111111111110111111111111111111111111111111111111111111111111111
13 13 0 1111111111111011111111111111111111111111111111111111111111111111
14 14 0 1111111111111101111111111111111111111111111111111111111111111111
15 15 0 1111111111111110111111111111111111111111111111111111111111111111
16 16 0 1111111111111111011111111111111111111111111111111111111111111111
17 17 0 1111111111111111101111111111111111111111111111111111111111111111
18 18 0 1111111111111111110111111111111111111111111111111111111111111111
19 19 0 1111111111111111111011111111111111111111111111111111111111111111
20 20 0 1111111111111111111101111111111111111111111111111111111111111111
21 21 0 1111111111111111111110111111111111111111111111111111111111111111
22 22 0 1111111111111111111111011111111111111111111111111111111111111111
23 23 0 1111111111111111111111101111111111111111111111111111111111111111
24 24 0 1111111111111111111111110111111111111111111111111111111111111111
25 25 0 1111111111111111111111111011111111111111111111111111111111111111
26 26 0 1111111111111111111111111101111111111111111111111111111111111111
27 27 0 1111111111111111111111111110111111111111111111111111111111111111
28 28 0 1111111111111111111111111111011111111111111111111111111111111111
29 29 0 1111111111111111111111111111101111111111111111111111111111111111
30 30 0 1111111111111111111111111111110111111111111111111111111111111111
31 31 0 1111111111111111111111111111111011111111111111111111111111111111
32 32 0 1111111111111111111111111111111101111111111111111111111111111111
33 33 0 1111111111111111111111111111111110111111111111111111111111111111
34 34 0 1111111111111111111111111111111111011111111111111111111111111111
35 35 0 1111111111111111111111111111111111101111111111111111111111111111
36 36 0 1111111111111111111111111111111111110111111111111111111111111111
37 37 0 1111111111111111111111111111111111111011111111111111111111111111
38 38 0 1111111111111111111111111111111111111101111111111111111111111111
39 39 0 1111111111111111111111111111111111111110111111111111111111111111
40 40 0 1111111111111111111111111111111111111111011111111111111111111111
41 41 0 1111111111111111111111111111111111111111101111111111111111111111
42 42 0 1111111111111111111111111111111111111111110111111111111111111111
43 43 0 1111111111111111111111111111111111111111111011111111111111111111
44 44 0 1111111111111111111111111111111111111111111101111111111111111111
45 45 0 1111111111111111111111111111111111111111111110111111111111111111
46 46 0 1111111111111111111111111111111111111111111111011111111111111111
47 47 0 1111111111111111111111111111111111111111111111101111111111111111
48 48 0 1111111111111111111111111111111111111111111111110111111111111111
49 49 0 1111111111111111111111111111111111111111111111111011111111111111
50 50 0 1111111111111111111111111111111111111111111111111101111111111111
51 51 0 1111111111111111111111111111111111111111111111111110111111111111
52 52 0 1111111111111111111111111111111111111111111111111111011111111111
53 53 0 1111111111111111111111111111111111111111111111111111101111111111
54 54 0 1111111111111111111111111111111111111111111111111111110111111111
55 55 0 1111111111111111111111111111111111111111111111111111111011111111
56 56 0 1111111111111111111111111111111111111111111111111111111101111111
57 57 0 1111111111111111111111111111111111111111111111111111111110111111
58 58 0 1111111111111111111111111111111111111111111111111111111111011111
59 59 0 1111111111111111111111111111111111111111111111111111111111101111
60 60 0 1111111111111111111111111111111111111111111111111111111111110111
61 61 0 1111111111111111111111111111111111111111111111111111111111111011
62 62 0 1111111111111111111111111111111111111111111111111111111111111101
63 63 0 1111111111111111111111111111111111111111111111111111111111111110
1 bit should move right 1 position each line
0 1 0 1000000000000000000000000000000000000000000000000000000000000000
1 0 1 0100000000000000000000000000000000000000000000000000000000000000
2 0 2 0010000000000000000000000000000000000000000000000000000000000000
3 0 3 0001000000000000000000000000000000000000000000000000000000000000
4 0 4 0000100000000000000000000000000000000000000000000000000000000000
5 0 5 0000010000000000000000000000000000000000000000000000000000000000
6 0 6 0000001000000000000000000000000000000000000000000000000000000000
7 0 7 0000000100000000000000000000000000000000000000000000000000000000
8 0 8 0000000010000000000000000000000000000000000000000000000000000000
9 0 9 0000000001000000000000000000000000000000000000000000000000000000
10 0 10 0000000000100000000000000000000000000000000000000000000000000000
11 0 11 0000000000010000000000000000000000000000000000000000000000000000
12 0 12 0000000000001000000000000000000000000000000000000000000000000000
13 0 13 0000000000000100000000000000000000000000000000000000000000000000
14 0 14 0000000000000010000000000000000000000000000000000000000000000000
15 0 15 0000000000000001000000000000000000000000000000000000000000000000
16 0 16 0000000000000000100000000000000000000000000000000000000000000000
17 0 17 0000000000000000010000000000000000000000000000000000000000000000
18 0 18 0000000000000000001000000000000000000000000000000000000000000000
19 0 19 0000000000000000000100000000000000000000000000000000000000000000
20 0 20 0000000000000000000010000000000000000000000000000000000000000000
21 0 21 0000000000000000000001000000000000000000000000000000000000000000
22 0 22 0000000000000000000000100000000000000000000000000000000000000000
23 0 23 0000000000000000000000010000000000000000000000000000000000000000
24 0 24 0000000000000000000000001000000000000000000000000000000000000000
25 0 25 0000000000000000000000000100000000000000000000000000000000000000
26 0 26 0000000000000000000000000010000000000000000000000000000000000000
27 0 27 0000000000000000000000000001000000000000000000000000000000000000
28 0 28 0000000000000000000000000000100000000000000000000000000000000000
29 0 29 0000000000000000000000000000010000000000000000000000000000000000
30 0 30 0000000000000000000000000000001000000000000000000000000000000000
31 0 31 0000000000000000000000000000000100000000000000000000000000000000
32 0 32 0000000000000000000000000000000010000000000000000000000000000000
33 0 33 0000000000000000000000000000000001000000000000000000000000000000
34 0 34 0000000000000000000000000000000000100000000000000000000000000000
35 0 35 0000000000000000000000000000000000010000000000000000000000000000
36 0 36 0000000000000000000000000000000000001000000000000000000000000000
37 0 37 0000000000000000000000000000000000000100000000000000000000000000
38 0 38 0000000000000000000000000000000000000010000000000000000000000000
39 0 39 0000000000000000000000000000000000000001000000000000000000000000
40 0 40 0000000000000000000000000000000000000000100000000000000000000000
41 0 41 0000000000000000000000000000000000000000010000000000000000000000
42 0 42 0000000000000000000000000000000000000000001000000000000000000000
43 0 43 0000000000000000000000000000000000000000000100000000000000000000
44 0 44 0000000000000000000000000000000000000000000010000000000000000000
45 0 45 0000000000000000000000000000000000000000000001000000000000000000
46 0 46 0000000000000000000000000000000000000000000000100000000000000000
47 0 47 0000000000000000000000000000000000000000000000010000000000000000
48 0 48 0000000000000000000000000000000000000000000000001000000000000000
49 0 49 0000000000000000000000000000000000000000000000000100000000000000
50 0 50 0000000000000000000000000000000000000000000000000010000000000000
51 0 51 0000000000000000000000000000000000000000000000000001000000000000
52 0 52 0000000000000000000000000000000000000000000000000000100000000000
53 0 53 0000000000000000000000000000000000000000000000000000010000000000
54 0 54 0000000000000000000000000000000000000000000000000000001000000000
55 0 55 0000000000000000000000000000000000000000000000000000000100000000
56 0 56 0000000000000000000000000000000000000000000000000000000010000000
57 0 57 0000000000000000000000000000000000000000000000000000000001000000
58 0 58 0000000000000000000000000000000000000000000000000000000000100000
59 0 59 0000000000000000000000000000000000000000000000000000000000010000
60 0 60 0000000000000000000000000000000000000000000000000000000000001000
61 0 61 0000000000000000000000000000000000000000000000000000000000000100
62 0 62 0000000000000000000000000000000000000000000000000000000000000010
63 0 63 0000000000000000000000000000000000000000000000000000000000000001

View File

@ -0,0 +1,583 @@
Testing with TEST_LENGTH = 67
test _bit_byte, _bit_mask, and bitstr_size
i _bit_byte(i) _bit_mask(i) bitstr_size(i)
0 0 1 0
1 0 2 1
2 0 4 1
3 0 8 1
4 0 16 1
5 0 32 1
6 0 64 1
7 0 128 1
8 1 1 1
9 1 2 2
10 1 4 2
11 1 8 2
12 1 16 2
13 1 32 2
14 1 64 2
15 1 128 2
16 2 1 2
17 2 2 3
18 2 4 3
19 2 8 3
20 2 16 3
21 2 32 3
22 2 64 3
23 2 128 3
24 3 1 3
25 3 2 4
26 3 4 4
27 3 8 4
28 3 16 4
29 3 32 4
30 3 64 4
31 3 128 4
32 4 1 4
33 4 2 5
34 4 4 5
35 4 8 5
36 4 16 5
37 4 32 5
38 4 64 5
39 4 128 5
40 5 1 5
41 5 2 6
42 5 4 6
43 5 8 6
44 5 16 6
45 5 32 6
46 5 64 6
47 5 128 6
48 6 1 6
49 6 2 7
50 6 4 7
51 6 8 7
52 6 16 7
53 6 32 7
54 6 64 7
55 6 128 7
56 7 1 7
57 7 2 8
58 7 4 8
59 7 8 8
60 7 16 8
61 7 32 8
62 7 64 8
63 7 128 8
64 8 1 8
65 8 2 9
66 8 4 9
test bit_alloc, clearbits, bit_ffc, bit_ffs
be: 0 -1 0000000000000000000000000000000000000000000000000000000000000000000
is: 0 -1 0000000000000000000000000000000000000000000000000000000000000000000
test bit_set
be: 1 0 1001001001001001001001001001001001001001001001001001001001001001001
is: 1 0 1001001001001001001001001001001001001001001001001001001001001001001
test bit_clear
be: 0 3 0001000001000001000001000001000001000001000001000001000001000001000
is: 0 3 0001000001000001000001000001000001000001000001000001000001000001000
test bit_test using previous bitstring
i bit_test(i)
0 0
1 0
2 0
3 8
4 0
5 0
6 0
7 0
8 0
9 2
10 0
11 0
12 0
13 0
14 0
15 128
16 0
17 0
18 0
19 0
20 0
21 32
22 0
23 0
24 0
25 0
26 0
27 8
28 0
29 0
30 0
31 0
32 0
33 2
34 0
35 0
36 0
37 0
38 0
39 128
40 0
41 0
42 0
43 0
44 0
45 32
46 0
47 0
48 0
49 0
50 0
51 8
52 0
53 0
54 0
55 0
56 0
57 2
58 0
59 0
60 0
61 0
62 0
63 128
64 0
65 0
66 0
test clearbits
be: 0 -1 0000000000000000000000000000000000000000000000000000000000000000000
is: 0 -1 0000000000000000000000000000000000000000000000000000000000000000000
test bit_nset and bit_nclear
be: 0 1 0111111111111111111111111111111111111111111111111111111111111111110
is: 0 1 0111111111111111111111111111111111111111111111111111111111111111110
be: 0 1 0100000000000000000000000000000000000000000000000000000000000000010
is: 0 1 0100000000000000000000000000000000000000000000000000000000000000010
be: 0 -1 0000000000000000000000000000000000000000000000000000000000000000000
is: 0 -1 0000000000000000000000000000000000000000000000000000000000000000000
be: 66 0 1111111111111111111111111111111111111111111111111111111111111111110
is: 66 0 1111111111111111111111111111111111111111111111111111111111111111110
be: 0 -1 0000000000000000000000000000000000000000000000000000000000000000000
is: 0 -1 0000000000000000000000000000000000000000000000000000000000000000000
first 1 bit should move right 1 position each line
0 -1 0 1111111111111111111111111111111111111111111111111111111111111111111
1 0 1 0111111111111111111111111111111111111111111111111111111111111111111
2 0 2 0011111111111111111111111111111111111111111111111111111111111111111
3 0 3 0001111111111111111111111111111111111111111111111111111111111111111
4 0 4 0000111111111111111111111111111111111111111111111111111111111111111
5 0 5 0000011111111111111111111111111111111111111111111111111111111111111
6 0 6 0000001111111111111111111111111111111111111111111111111111111111111
7 0 7 0000000111111111111111111111111111111111111111111111111111111111111
8 0 8 0000000011111111111111111111111111111111111111111111111111111111111
9 0 9 0000000001111111111111111111111111111111111111111111111111111111111
10 0 10 0000000000111111111111111111111111111111111111111111111111111111111
11 0 11 0000000000011111111111111111111111111111111111111111111111111111111
12 0 12 0000000000001111111111111111111111111111111111111111111111111111111
13 0 13 0000000000000111111111111111111111111111111111111111111111111111111
14 0 14 0000000000000011111111111111111111111111111111111111111111111111111
15 0 15 0000000000000001111111111111111111111111111111111111111111111111111
16 0 16 0000000000000000111111111111111111111111111111111111111111111111111
17 0 17 0000000000000000011111111111111111111111111111111111111111111111111
18 0 18 0000000000000000001111111111111111111111111111111111111111111111111
19 0 19 0000000000000000000111111111111111111111111111111111111111111111111
20 0 20 0000000000000000000011111111111111111111111111111111111111111111111
21 0 21 0000000000000000000001111111111111111111111111111111111111111111111
22 0 22 0000000000000000000000111111111111111111111111111111111111111111111
23 0 23 0000000000000000000000011111111111111111111111111111111111111111111
24 0 24 0000000000000000000000001111111111111111111111111111111111111111111
25 0 25 0000000000000000000000000111111111111111111111111111111111111111111
26 0 26 0000000000000000000000000011111111111111111111111111111111111111111
27 0 27 0000000000000000000000000001111111111111111111111111111111111111111
28 0 28 0000000000000000000000000000111111111111111111111111111111111111111
29 0 29 0000000000000000000000000000011111111111111111111111111111111111111
30 0 30 0000000000000000000000000000001111111111111111111111111111111111111
31 0 31 0000000000000000000000000000000111111111111111111111111111111111111
32 0 32 0000000000000000000000000000000011111111111111111111111111111111111
33 0 33 0000000000000000000000000000000001111111111111111111111111111111111
34 0 34 0000000000000000000000000000000000111111111111111111111111111111111
35 0 35 0000000000000000000000000000000000011111111111111111111111111111111
36 0 36 0000000000000000000000000000000000001111111111111111111111111111111
37 0 37 0000000000000000000000000000000000000111111111111111111111111111111
38 0 38 0000000000000000000000000000000000000011111111111111111111111111111
39 0 39 0000000000000000000000000000000000000001111111111111111111111111111
40 0 40 0000000000000000000000000000000000000000111111111111111111111111111
41 0 41 0000000000000000000000000000000000000000011111111111111111111111111
42 0 42 0000000000000000000000000000000000000000001111111111111111111111111
43 0 43 0000000000000000000000000000000000000000000111111111111111111111111
44 0 44 0000000000000000000000000000000000000000000011111111111111111111111
45 0 45 0000000000000000000000000000000000000000000001111111111111111111111
46 0 46 0000000000000000000000000000000000000000000000111111111111111111111
47 0 47 0000000000000000000000000000000000000000000000011111111111111111111
48 0 48 0000000000000000000000000000000000000000000000001111111111111111111
49 0 49 0000000000000000000000000000000000000000000000000111111111111111111
50 0 50 0000000000000000000000000000000000000000000000000011111111111111111
51 0 51 0000000000000000000000000000000000000000000000000001111111111111111
52 0 52 0000000000000000000000000000000000000000000000000000111111111111111
53 0 53 0000000000000000000000000000000000000000000000000000011111111111111
54 0 54 0000000000000000000000000000000000000000000000000000001111111111111
55 0 55 0000000000000000000000000000000000000000000000000000000111111111111
56 0 56 0000000000000000000000000000000000000000000000000000000011111111111
57 0 57 0000000000000000000000000000000000000000000000000000000001111111111
58 0 58 0000000000000000000000000000000000000000000000000000000000111111111
59 0 59 0000000000000000000000000000000000000000000000000000000000011111111
60 0 60 0000000000000000000000000000000000000000000000000000000000001111111
61 0 61 0000000000000000000000000000000000000000000000000000000000000111111
62 0 62 0000000000000000000000000000000000000000000000000000000000000011111
63 0 63 0000000000000000000000000000000000000000000000000000000000000001111
64 0 64 0000000000000000000000000000000000000000000000000000000000000000111
65 0 65 0000000000000000000000000000000000000000000000000000000000000000011
66 0 66 0000000000000000000000000000000000000000000000000000000000000000001
first 0 bit should move right 1 position each line
0 0 -1 0000000000000000000000000000000000000000000000000000000000000000000
1 1 0 1000000000000000000000000000000000000000000000000000000000000000000
2 2 0 1100000000000000000000000000000000000000000000000000000000000000000
3 3 0 1110000000000000000000000000000000000000000000000000000000000000000
4 4 0 1111000000000000000000000000000000000000000000000000000000000000000
5 5 0 1111100000000000000000000000000000000000000000000000000000000000000
6 6 0 1111110000000000000000000000000000000000000000000000000000000000000
7 7 0 1111111000000000000000000000000000000000000000000000000000000000000
8 8 0 1111111100000000000000000000000000000000000000000000000000000000000
9 9 0 1111111110000000000000000000000000000000000000000000000000000000000
10 10 0 1111111111000000000000000000000000000000000000000000000000000000000
11 11 0 1111111111100000000000000000000000000000000000000000000000000000000
12 12 0 1111111111110000000000000000000000000000000000000000000000000000000
13 13 0 1111111111111000000000000000000000000000000000000000000000000000000
14 14 0 1111111111111100000000000000000000000000000000000000000000000000000
15 15 0 1111111111111110000000000000000000000000000000000000000000000000000
16 16 0 1111111111111111000000000000000000000000000000000000000000000000000
17 17 0 1111111111111111100000000000000000000000000000000000000000000000000
18 18 0 1111111111111111110000000000000000000000000000000000000000000000000
19 19 0 1111111111111111111000000000000000000000000000000000000000000000000
20 20 0 1111111111111111111100000000000000000000000000000000000000000000000
21 21 0 1111111111111111111110000000000000000000000000000000000000000000000
22 22 0 1111111111111111111111000000000000000000000000000000000000000000000
23 23 0 1111111111111111111111100000000000000000000000000000000000000000000
24 24 0 1111111111111111111111110000000000000000000000000000000000000000000
25 25 0 1111111111111111111111111000000000000000000000000000000000000000000
26 26 0 1111111111111111111111111100000000000000000000000000000000000000000
27 27 0 1111111111111111111111111110000000000000000000000000000000000000000
28 28 0 1111111111111111111111111111000000000000000000000000000000000000000
29 29 0 1111111111111111111111111111100000000000000000000000000000000000000
30 30 0 1111111111111111111111111111110000000000000000000000000000000000000
31 31 0 1111111111111111111111111111111000000000000000000000000000000000000
32 32 0 1111111111111111111111111111111100000000000000000000000000000000000
33 33 0 1111111111111111111111111111111110000000000000000000000000000000000
34 34 0 1111111111111111111111111111111111000000000000000000000000000000000
35 35 0 1111111111111111111111111111111111100000000000000000000000000000000
36 36 0 1111111111111111111111111111111111110000000000000000000000000000000
37 37 0 1111111111111111111111111111111111111000000000000000000000000000000
38 38 0 1111111111111111111111111111111111111100000000000000000000000000000
39 39 0 1111111111111111111111111111111111111110000000000000000000000000000
40 40 0 1111111111111111111111111111111111111111000000000000000000000000000
41 41 0 1111111111111111111111111111111111111111100000000000000000000000000
42 42 0 1111111111111111111111111111111111111111110000000000000000000000000
43 43 0 1111111111111111111111111111111111111111111000000000000000000000000
44 44 0 1111111111111111111111111111111111111111111100000000000000000000000
45 45 0 1111111111111111111111111111111111111111111110000000000000000000000
46 46 0 1111111111111111111111111111111111111111111111000000000000000000000
47 47 0 1111111111111111111111111111111111111111111111100000000000000000000
48 48 0 1111111111111111111111111111111111111111111111110000000000000000000
49 49 0 1111111111111111111111111111111111111111111111111000000000000000000
50 50 0 1111111111111111111111111111111111111111111111111100000000000000000
51 51 0 1111111111111111111111111111111111111111111111111110000000000000000
52 52 0 1111111111111111111111111111111111111111111111111111000000000000000
53 53 0 1111111111111111111111111111111111111111111111111111100000000000000
54 54 0 1111111111111111111111111111111111111111111111111111110000000000000
55 55 0 1111111111111111111111111111111111111111111111111111111000000000000
56 56 0 1111111111111111111111111111111111111111111111111111111100000000000
57 57 0 1111111111111111111111111111111111111111111111111111111110000000000
58 58 0 1111111111111111111111111111111111111111111111111111111111000000000
59 59 0 1111111111111111111111111111111111111111111111111111111111100000000
60 60 0 1111111111111111111111111111111111111111111111111111111111110000000
61 61 0 1111111111111111111111111111111111111111111111111111111111111000000
62 62 0 1111111111111111111111111111111111111111111111111111111111111100000
63 63 0 1111111111111111111111111111111111111111111111111111111111111110000
64 64 0 1111111111111111111111111111111111111111111111111111111111111111000
65 65 0 1111111111111111111111111111111111111111111111111111111111111111100
66 66 0 1111111111111111111111111111111111111111111111111111111111111111110
first 0 bit should move left 1 position each line
0 -1 0 1111111111111111111111111111111111111111111111111111111111111111111
1 66 0 1111111111111111111111111111111111111111111111111111111111111111110
2 65 0 1111111111111111111111111111111111111111111111111111111111111111100
3 64 0 1111111111111111111111111111111111111111111111111111111111111111000
4 63 0 1111111111111111111111111111111111111111111111111111111111111110000
5 62 0 1111111111111111111111111111111111111111111111111111111111111100000
6 61 0 1111111111111111111111111111111111111111111111111111111111111000000
7 60 0 1111111111111111111111111111111111111111111111111111111111110000000
8 59 0 1111111111111111111111111111111111111111111111111111111111100000000
9 58 0 1111111111111111111111111111111111111111111111111111111111000000000
10 57 0 1111111111111111111111111111111111111111111111111111111110000000000
11 56 0 1111111111111111111111111111111111111111111111111111111100000000000
12 55 0 1111111111111111111111111111111111111111111111111111111000000000000
13 54 0 1111111111111111111111111111111111111111111111111111110000000000000
14 53 0 1111111111111111111111111111111111111111111111111111100000000000000
15 52 0 1111111111111111111111111111111111111111111111111111000000000000000
16 51 0 1111111111111111111111111111111111111111111111111110000000000000000
17 50 0 1111111111111111111111111111111111111111111111111100000000000000000
18 49 0 1111111111111111111111111111111111111111111111111000000000000000000
19 48 0 1111111111111111111111111111111111111111111111110000000000000000000
20 47 0 1111111111111111111111111111111111111111111111100000000000000000000
21 46 0 1111111111111111111111111111111111111111111111000000000000000000000
22 45 0 1111111111111111111111111111111111111111111110000000000000000000000
23 44 0 1111111111111111111111111111111111111111111100000000000000000000000
24 43 0 1111111111111111111111111111111111111111111000000000000000000000000
25 42 0 1111111111111111111111111111111111111111110000000000000000000000000
26 41 0 1111111111111111111111111111111111111111100000000000000000000000000
27 40 0 1111111111111111111111111111111111111111000000000000000000000000000
28 39 0 1111111111111111111111111111111111111110000000000000000000000000000
29 38 0 1111111111111111111111111111111111111100000000000000000000000000000
30 37 0 1111111111111111111111111111111111111000000000000000000000000000000
31 36 0 1111111111111111111111111111111111110000000000000000000000000000000
32 35 0 1111111111111111111111111111111111100000000000000000000000000000000
33 34 0 1111111111111111111111111111111111000000000000000000000000000000000
34 33 0 1111111111111111111111111111111110000000000000000000000000000000000
35 32 0 1111111111111111111111111111111100000000000000000000000000000000000
36 31 0 1111111111111111111111111111111000000000000000000000000000000000000
37 30 0 1111111111111111111111111111110000000000000000000000000000000000000
38 29 0 1111111111111111111111111111100000000000000000000000000000000000000
39 28 0 1111111111111111111111111111000000000000000000000000000000000000000
40 27 0 1111111111111111111111111110000000000000000000000000000000000000000
41 26 0 1111111111111111111111111100000000000000000000000000000000000000000
42 25 0 1111111111111111111111111000000000000000000000000000000000000000000
43 24 0 1111111111111111111111110000000000000000000000000000000000000000000
44 23 0 1111111111111111111111100000000000000000000000000000000000000000000
45 22 0 1111111111111111111111000000000000000000000000000000000000000000000
46 21 0 1111111111111111111110000000000000000000000000000000000000000000000
47 20 0 1111111111111111111100000000000000000000000000000000000000000000000
48 19 0 1111111111111111111000000000000000000000000000000000000000000000000
49 18 0 1111111111111111110000000000000000000000000000000000000000000000000
50 17 0 1111111111111111100000000000000000000000000000000000000000000000000
51 16 0 1111111111111111000000000000000000000000000000000000000000000000000
52 15 0 1111111111111110000000000000000000000000000000000000000000000000000
53 14 0 1111111111111100000000000000000000000000000000000000000000000000000
54 13 0 1111111111111000000000000000000000000000000000000000000000000000000
55 12 0 1111111111110000000000000000000000000000000000000000000000000000000
56 11 0 1111111111100000000000000000000000000000000000000000000000000000000
57 10 0 1111111111000000000000000000000000000000000000000000000000000000000
58 9 0 1111111110000000000000000000000000000000000000000000000000000000000
59 8 0 1111111100000000000000000000000000000000000000000000000000000000000
60 7 0 1111111000000000000000000000000000000000000000000000000000000000000
61 6 0 1111110000000000000000000000000000000000000000000000000000000000000
62 5 0 1111100000000000000000000000000000000000000000000000000000000000000
63 4 0 1111000000000000000000000000000000000000000000000000000000000000000
64 3 0 1110000000000000000000000000000000000000000000000000000000000000000
65 2 0 1100000000000000000000000000000000000000000000000000000000000000000
66 1 0 1000000000000000000000000000000000000000000000000000000000000000000
first 1 bit should move left 1 position each line
0 0 -1 0000000000000000000000000000000000000000000000000000000000000000000
1 0 66 0000000000000000000000000000000000000000000000000000000000000000001
2 0 65 0000000000000000000000000000000000000000000000000000000000000000011
3 0 64 0000000000000000000000000000000000000000000000000000000000000000111
4 0 63 0000000000000000000000000000000000000000000000000000000000000001111
5 0 62 0000000000000000000000000000000000000000000000000000000000000011111
6 0 61 0000000000000000000000000000000000000000000000000000000000000111111
7 0 60 0000000000000000000000000000000000000000000000000000000000001111111
8 0 59 0000000000000000000000000000000000000000000000000000000000011111111
9 0 58 0000000000000000000000000000000000000000000000000000000000111111111
10 0 57 0000000000000000000000000000000000000000000000000000000001111111111
11 0 56 0000000000000000000000000000000000000000000000000000000011111111111
12 0 55 0000000000000000000000000000000000000000000000000000000111111111111
13 0 54 0000000000000000000000000000000000000000000000000000001111111111111
14 0 53 0000000000000000000000000000000000000000000000000000011111111111111
15 0 52 0000000000000000000000000000000000000000000000000000111111111111111
16 0 51 0000000000000000000000000000000000000000000000000001111111111111111
17 0 50 0000000000000000000000000000000000000000000000000011111111111111111
18 0 49 0000000000000000000000000000000000000000000000000111111111111111111
19 0 48 0000000000000000000000000000000000000000000000001111111111111111111
20 0 47 0000000000000000000000000000000000000000000000011111111111111111111
21 0 46 0000000000000000000000000000000000000000000000111111111111111111111
22 0 45 0000000000000000000000000000000000000000000001111111111111111111111
23 0 44 0000000000000000000000000000000000000000000011111111111111111111111
24 0 43 0000000000000000000000000000000000000000000111111111111111111111111
25 0 42 0000000000000000000000000000000000000000001111111111111111111111111
26 0 41 0000000000000000000000000000000000000000011111111111111111111111111
27 0 40 0000000000000000000000000000000000000000111111111111111111111111111
28 0 39 0000000000000000000000000000000000000001111111111111111111111111111
29 0 38 0000000000000000000000000000000000000011111111111111111111111111111
30 0 37 0000000000000000000000000000000000000111111111111111111111111111111
31 0 36 0000000000000000000000000000000000001111111111111111111111111111111
32 0 35 0000000000000000000000000000000000011111111111111111111111111111111
33 0 34 0000000000000000000000000000000000111111111111111111111111111111111
34 0 33 0000000000000000000000000000000001111111111111111111111111111111111
35 0 32 0000000000000000000000000000000011111111111111111111111111111111111
36 0 31 0000000000000000000000000000000111111111111111111111111111111111111
37 0 30 0000000000000000000000000000001111111111111111111111111111111111111
38 0 29 0000000000000000000000000000011111111111111111111111111111111111111
39 0 28 0000000000000000000000000000111111111111111111111111111111111111111
40 0 27 0000000000000000000000000001111111111111111111111111111111111111111
41 0 26 0000000000000000000000000011111111111111111111111111111111111111111
42 0 25 0000000000000000000000000111111111111111111111111111111111111111111
43 0 24 0000000000000000000000001111111111111111111111111111111111111111111
44 0 23 0000000000000000000000011111111111111111111111111111111111111111111
45 0 22 0000000000000000000000111111111111111111111111111111111111111111111
46 0 21 0000000000000000000001111111111111111111111111111111111111111111111
47 0 20 0000000000000000000011111111111111111111111111111111111111111111111
48 0 19 0000000000000000000111111111111111111111111111111111111111111111111
49 0 18 0000000000000000001111111111111111111111111111111111111111111111111
50 0 17 0000000000000000011111111111111111111111111111111111111111111111111
51 0 16 0000000000000000111111111111111111111111111111111111111111111111111
52 0 15 0000000000000001111111111111111111111111111111111111111111111111111
53 0 14 0000000000000011111111111111111111111111111111111111111111111111111
54 0 13 0000000000000111111111111111111111111111111111111111111111111111111
55 0 12 0000000000001111111111111111111111111111111111111111111111111111111
56 0 11 0000000000011111111111111111111111111111111111111111111111111111111
57 0 10 0000000000111111111111111111111111111111111111111111111111111111111
58 0 9 0000000001111111111111111111111111111111111111111111111111111111111
59 0 8 0000000011111111111111111111111111111111111111111111111111111111111
60 0 7 0000000111111111111111111111111111111111111111111111111111111111111
61 0 6 0000001111111111111111111111111111111111111111111111111111111111111
62 0 5 0000011111111111111111111111111111111111111111111111111111111111111
63 0 4 0000111111111111111111111111111111111111111111111111111111111111111
64 0 3 0001111111111111111111111111111111111111111111111111111111111111111
65 0 2 0011111111111111111111111111111111111111111111111111111111111111111
66 0 1 0111111111111111111111111111111111111111111111111111111111111111111
0 bit should move right 1 position each line
0 0 1 0111111111111111111111111111111111111111111111111111111111111111111
1 1 0 1011111111111111111111111111111111111111111111111111111111111111111
2 2 0 1101111111111111111111111111111111111111111111111111111111111111111
3 3 0 1110111111111111111111111111111111111111111111111111111111111111111
4 4 0 1111011111111111111111111111111111111111111111111111111111111111111
5 5 0 1111101111111111111111111111111111111111111111111111111111111111111
6 6 0 1111110111111111111111111111111111111111111111111111111111111111111
7 7 0 1111111011111111111111111111111111111111111111111111111111111111111
8 8 0 1111111101111111111111111111111111111111111111111111111111111111111
9 9 0 1111111110111111111111111111111111111111111111111111111111111111111
10 10 0 1111111111011111111111111111111111111111111111111111111111111111111
11 11 0 1111111111101111111111111111111111111111111111111111111111111111111
12 12 0 1111111111110111111111111111111111111111111111111111111111111111111
13 13 0 1111111111111011111111111111111111111111111111111111111111111111111
14 14 0 1111111111111101111111111111111111111111111111111111111111111111111
15 15 0 1111111111111110111111111111111111111111111111111111111111111111111
16 16 0 1111111111111111011111111111111111111111111111111111111111111111111
17 17 0 1111111111111111101111111111111111111111111111111111111111111111111
18 18 0 1111111111111111110111111111111111111111111111111111111111111111111
19 19 0 1111111111111111111011111111111111111111111111111111111111111111111
20 20 0 1111111111111111111101111111111111111111111111111111111111111111111
21 21 0 1111111111111111111110111111111111111111111111111111111111111111111
22 22 0 1111111111111111111111011111111111111111111111111111111111111111111
23 23 0 1111111111111111111111101111111111111111111111111111111111111111111
24 24 0 1111111111111111111111110111111111111111111111111111111111111111111
25 25 0 1111111111111111111111111011111111111111111111111111111111111111111
26 26 0 1111111111111111111111111101111111111111111111111111111111111111111
27 27 0 1111111111111111111111111110111111111111111111111111111111111111111
28 28 0 1111111111111111111111111111011111111111111111111111111111111111111
29 29 0 1111111111111111111111111111101111111111111111111111111111111111111
30 30 0 1111111111111111111111111111110111111111111111111111111111111111111
31 31 0 1111111111111111111111111111111011111111111111111111111111111111111
32 32 0 1111111111111111111111111111111101111111111111111111111111111111111
33 33 0 1111111111111111111111111111111110111111111111111111111111111111111
34 34 0 1111111111111111111111111111111111011111111111111111111111111111111
35 35 0 1111111111111111111111111111111111101111111111111111111111111111111
36 36 0 1111111111111111111111111111111111110111111111111111111111111111111
37 37 0 1111111111111111111111111111111111111011111111111111111111111111111
38 38 0 1111111111111111111111111111111111111101111111111111111111111111111
39 39 0 1111111111111111111111111111111111111110111111111111111111111111111
40 40 0 1111111111111111111111111111111111111111011111111111111111111111111
41 41 0 1111111111111111111111111111111111111111101111111111111111111111111
42 42 0 1111111111111111111111111111111111111111110111111111111111111111111
43 43 0 1111111111111111111111111111111111111111111011111111111111111111111
44 44 0 1111111111111111111111111111111111111111111101111111111111111111111
45 45 0 1111111111111111111111111111111111111111111110111111111111111111111
46 46 0 1111111111111111111111111111111111111111111111011111111111111111111
47 47 0 1111111111111111111111111111111111111111111111101111111111111111111
48 48 0 1111111111111111111111111111111111111111111111110111111111111111111
49 49 0 1111111111111111111111111111111111111111111111111011111111111111111
50 50 0 1111111111111111111111111111111111111111111111111101111111111111111
51 51 0 1111111111111111111111111111111111111111111111111110111111111111111
52 52 0 1111111111111111111111111111111111111111111111111111011111111111111
53 53 0 1111111111111111111111111111111111111111111111111111101111111111111
54 54 0 1111111111111111111111111111111111111111111111111111110111111111111
55 55 0 1111111111111111111111111111111111111111111111111111111011111111111
56 56 0 1111111111111111111111111111111111111111111111111111111101111111111
57 57 0 1111111111111111111111111111111111111111111111111111111110111111111
58 58 0 1111111111111111111111111111111111111111111111111111111111011111111
59 59 0 1111111111111111111111111111111111111111111111111111111111101111111
60 60 0 1111111111111111111111111111111111111111111111111111111111110111111
61 61 0 1111111111111111111111111111111111111111111111111111111111111011111
62 62 0 1111111111111111111111111111111111111111111111111111111111111101111
63 63 0 1111111111111111111111111111111111111111111111111111111111111110111
64 64 0 1111111111111111111111111111111111111111111111111111111111111111011
65 65 0 1111111111111111111111111111111111111111111111111111111111111111101
66 66 0 1111111111111111111111111111111111111111111111111111111111111111110
1 bit should move right 1 position each line
0 1 0 1000000000000000000000000000000000000000000000000000000000000000000
1 0 1 0100000000000000000000000000000000000000000000000000000000000000000
2 0 2 0010000000000000000000000000000000000000000000000000000000000000000
3 0 3 0001000000000000000000000000000000000000000000000000000000000000000
4 0 4 0000100000000000000000000000000000000000000000000000000000000000000
5 0 5 0000010000000000000000000000000000000000000000000000000000000000000
6 0 6 0000001000000000000000000000000000000000000000000000000000000000000
7 0 7 0000000100000000000000000000000000000000000000000000000000000000000
8 0 8 0000000010000000000000000000000000000000000000000000000000000000000
9 0 9 0000000001000000000000000000000000000000000000000000000000000000000
10 0 10 0000000000100000000000000000000000000000000000000000000000000000000
11 0 11 0000000000010000000000000000000000000000000000000000000000000000000
12 0 12 0000000000001000000000000000000000000000000000000000000000000000000
13 0 13 0000000000000100000000000000000000000000000000000000000000000000000
14 0 14 0000000000000010000000000000000000000000000000000000000000000000000
15 0 15 0000000000000001000000000000000000000000000000000000000000000000000
16 0 16 0000000000000000100000000000000000000000000000000000000000000000000
17 0 17 0000000000000000010000000000000000000000000000000000000000000000000
18 0 18 0000000000000000001000000000000000000000000000000000000000000000000
19 0 19 0000000000000000000100000000000000000000000000000000000000000000000
20 0 20 0000000000000000000010000000000000000000000000000000000000000000000
21 0 21 0000000000000000000001000000000000000000000000000000000000000000000
22 0 22 0000000000000000000000100000000000000000000000000000000000000000000
23 0 23 0000000000000000000000010000000000000000000000000000000000000000000
24 0 24 0000000000000000000000001000000000000000000000000000000000000000000
25 0 25 0000000000000000000000000100000000000000000000000000000000000000000
26 0 26 0000000000000000000000000010000000000000000000000000000000000000000
27 0 27 0000000000000000000000000001000000000000000000000000000000000000000
28 0 28 0000000000000000000000000000100000000000000000000000000000000000000
29 0 29 0000000000000000000000000000010000000000000000000000000000000000000
30 0 30 0000000000000000000000000000001000000000000000000000000000000000000
31 0 31 0000000000000000000000000000000100000000000000000000000000000000000
32 0 32 0000000000000000000000000000000010000000000000000000000000000000000
33 0 33 0000000000000000000000000000000001000000000000000000000000000000000
34 0 34 0000000000000000000000000000000000100000000000000000000000000000000
35 0 35 0000000000000000000000000000000000010000000000000000000000000000000
36 0 36 0000000000000000000000000000000000001000000000000000000000000000000
37 0 37 0000000000000000000000000000000000000100000000000000000000000000000
38 0 38 0000000000000000000000000000000000000010000000000000000000000000000
39 0 39 0000000000000000000000000000000000000001000000000000000000000000000
40 0 40 0000000000000000000000000000000000000000100000000000000000000000000
41 0 41 0000000000000000000000000000000000000000010000000000000000000000000
42 0 42 0000000000000000000000000000000000000000001000000000000000000000000
43 0 43 0000000000000000000000000000000000000000000100000000000000000000000
44 0 44 0000000000000000000000000000000000000000000010000000000000000000000
45 0 45 0000000000000000000000000000000000000000000001000000000000000000000
46 0 46 0000000000000000000000000000000000000000000000100000000000000000000
47 0 47 0000000000000000000000000000000000000000000000010000000000000000000
48 0 48 0000000000000000000000000000000000000000000000001000000000000000000
49 0 49 0000000000000000000000000000000000000000000000000100000000000000000
50 0 50 0000000000000000000000000000000000000000000000000010000000000000000
51 0 51 0000000000000000000000000000000000000000000000000001000000000000000
52 0 52 0000000000000000000000000000000000000000000000000000100000000000000
53 0 53 0000000000000000000000000000000000000000000000000000010000000000000
54 0 54 0000000000000000000000000000000000000000000000000000001000000000000
55 0 55 0000000000000000000000000000000000000000000000000000000100000000000
56 0 56 0000000000000000000000000000000000000000000000000000000010000000000
57 0 57 0000000000000000000000000000000000000000000000000000000001000000000
58 0 58 0000000000000000000000000000000000000000000000000000000000100000000
59 0 59 0000000000000000000000000000000000000000000000000000000000010000000
60 0 60 0000000000000000000000000000000000000000000000000000000000001000000
61 0 61 0000000000000000000000000000000000000000000000000000000000000100000
62 0 62 0000000000000000000000000000000000000000000000000000000000000010000
63 0 63 0000000000000000000000000000000000000000000000000000000000000001000
64 0 64 0000000000000000000000000000000000000000000000000000000000000000100
65 0 65 0000000000000000000000000000000000000000000000000000000000000000010
66 0 66 0000000000000000000000000000000000000000000000000000000000000000001

View File

@ -0,0 +1,111 @@
Testing with TEST_LENGTH = 8
test _bit_byte, _bit_mask, and bitstr_size
i _bit_byte(i) _bit_mask(i) bitstr_size(i)
0 0 1 0
1 0 2 1
2 0 4 1
3 0 8 1
4 0 16 1
5 0 32 1
6 0 64 1
7 0 128 1
test bit_alloc, clearbits, bit_ffc, bit_ffs
be: 0 -1 00000000
is: 0 -1 00000000
test bit_set
be: 1 0 10010010
is: 1 0 10010010
test bit_clear
be: 0 3 00010000
is: 0 3 00010000
test bit_test using previous bitstring
i bit_test(i)
0 0
1 0
2 0
3 8
4 0
5 0
6 0
7 0
test clearbits
be: 0 -1 00000000
is: 0 -1 00000000
test bit_nset and bit_nclear
be: 0 1 01111110
is: 0 1 01111110
be: 0 1 01000010
is: 0 1 01000010
be: 0 -1 00000000
is: 0 -1 00000000
be: 7 0 11111110
is: 7 0 11111110
be: 0 -1 00000000
is: 0 -1 00000000
first 1 bit should move right 1 position each line
0 -1 0 11111111
1 0 1 01111111
2 0 2 00111111
3 0 3 00011111
4 0 4 00001111
5 0 5 00000111
6 0 6 00000011
7 0 7 00000001
first 0 bit should move right 1 position each line
0 0 -1 00000000
1 1 0 10000000
2 2 0 11000000
3 3 0 11100000
4 4 0 11110000
5 5 0 11111000
6 6 0 11111100
7 7 0 11111110
first 0 bit should move left 1 position each line
0 -1 0 11111111
1 7 0 11111110
2 6 0 11111100
3 5 0 11111000
4 4 0 11110000
5 3 0 11100000
6 2 0 11000000
7 1 0 10000000
first 1 bit should move left 1 position each line
0 0 -1 00000000
1 0 7 00000001
2 0 6 00000011
3 0 5 00000111
4 0 4 00001111
5 0 3 00011111
6 0 2 00111111
7 0 1 01111111
0 bit should move right 1 position each line
0 0 1 01111111
1 1 0 10111111
2 2 0 11011111
3 3 0 11101111
4 4 0 11110111
5 5 0 11111011
6 6 0 11111101
7 7 0 11111110
1 bit should move right 1 position each line
0 1 0 10000000
1 0 1 01000000
2 0 2 00100000
3 0 3 00010000
4 0 4 00001000
5 0 5 00000100
6 0 6 00000010
7 0 7 00000001

View File

@ -0,0 +1,11 @@
# $NetBSD: Makefile,v 1.1 2010/07/17 19:26:27 jmmv Exp $
NOMAN= # defined
.include <bsd.own.mk>
TESTSDIR= ${TESTSBASE}/include/sys
TESTS_C= t_bootblock
.include <bsd.test.mk>

View File

@ -0,0 +1,73 @@
/* $NetBSD: t_bootblock.c,v 1.1 2010/07/17 19:26:27 jmmv Exp $ */
/*
* Copyright (c) 2004, 2008, 2010 The NetBSD Foundation, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <sys/cdefs.h>
__COPYRIGHT("@(#) Copyright (c) 2008, 2010\
The NetBSD Foundation, inc. All rights reserved.");
__RCSID("$NetBSD: t_bootblock.c,v 1.1 2010/07/17 19:26:27 jmmv Exp $");
#include <sys/types.h>
#include <sys/bootblock.h>
#include <stddef.h>
#include <stdlib.h>
#include <unistd.h>
#include <atf-c.h>
ATF_TC_WITHOUT_HEAD(mbr_sector);
ATF_TC_BODY(mbr_sector, tc)
{
ATF_CHECK_EQ(512, sizeof(struct mbr_sector));
ATF_CHECK_EQ(MBR_BPB_OFFSET, offsetof(struct mbr_sector, mbr_bpb));
ATF_CHECK_EQ(MBR_BS_OFFSET, offsetof(struct mbr_sector, mbr_bootsel));
ATF_CHECK_EQ(440, offsetof(struct mbr_sector, mbr_dsn));
ATF_CHECK_EQ(446, MBR_PART_OFFSET);
ATF_CHECK_EQ(MBR_PART_OFFSET, offsetof(struct mbr_sector, mbr_parts));
ATF_CHECK_EQ(510, MBR_MAGIC_OFFSET);
ATF_CHECK_EQ(MBR_MAGIC_OFFSET, offsetof(struct mbr_sector, mbr_magic));
}
ATF_TC_WITHOUT_HEAD(mbr_partition);
ATF_TC_BODY(mbr_partition, tc)
{
ATF_CHECK_EQ(16, sizeof(struct mbr_partition));
}
ATF_TP_ADD_TCS(tp)
{
ATF_TP_ADD_TC(tp, mbr_sector);
ATF_TP_ADD_TC(tp, mbr_partition);
return atf_no_error();
}

305
tests/include/t_bitstring.c Normal file
View File

@ -0,0 +1,305 @@
/* $NetBSD: t_bitstring.c,v 1.1 2010/07/17 19:26:27 jmmv Exp $ */
/*-
* Copyright (c) 1993, 2008, 2010 The NetBSD Foundation, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <assert.h>
#include <bitstring.h>
#include <stdio.h>
#include <stdlib.h>
#include <atf-c.h>
static void
clearbits(bitstr_t *b, int n)
{
int i = bitstr_size(n);
while(i--)
*(b + i) = 0;
}
static void
printbits(FILE *file, bitstr_t *b, int n)
{
int i;
int jc, js;
bit_ffc(b, n, &jc);
bit_ffs(b, n, &js);
(void) fprintf(file, "%3d %3d ", jc, js);
for (i=0; i < n; i++) {
(void) fprintf(file, "%c", (bit_test(b, i) ? '1' : '0'));
}
(void) fprintf(file, "%c", '\n');
}
static void
calculate_data(FILE *file, const int test_length)
{
int b, i;
bitstr_t *bs;
bitstr_t bit_decl(bss, 37); /* Mostly a random number. */
assert(test_length >= 4);
(void) fprintf(file, "Testing with TEST_LENGTH = %d\n\n", test_length);
(void) fprintf(file, "test _bit_byte, _bit_mask, and bitstr_size\n");
(void) fprintf(file, " i _bit_byte(i) _bit_mask(i) bitstr_size(i)\n");
for (i=0; i < test_length; i++) {
(void) fprintf(file, "%3d%15d%15d%15d\n",
i, _bit_byte(i), _bit_mask(i), bitstr_size(i));
}
bs = bit_alloc(test_length);
clearbits(bs, test_length);
(void) fprintf(file, "\ntest bit_alloc, clearbits, bit_ffc, bit_ffs\n");
(void) fprintf(file, "be: 0 -1 ");
for (i=0; i < test_length; i++)
(void) fprintf(file, "%c", '0');
(void) fprintf(file, "\nis: ");
printbits(file, bs, test_length);
(void) fprintf(file, "\ntest bit_set\n");
for (i=0; i < test_length; i+=3)
bit_set(bs, i);
(void) fprintf(file, "be: 1 0 ");
for (i=0; i < test_length; i++)
(void) fprintf(file, "%c", *("100" + (i % 3)));
(void) fprintf(file, "\nis: ");
printbits(file, bs, test_length);
(void) fprintf(file, "\ntest bit_clear\n");
for (i=0; i < test_length; i+=6)
bit_clear(bs, i);
(void) fprintf(file, "be: 0 3 ");
for (i=0; i < test_length; i++)
(void) fprintf(file, "%c", *("000100" + (i % 6)));
(void) fprintf(file, "\nis: ");
printbits(file, bs, test_length);
(void) fprintf(file, "\ntest bit_test using previous bitstring\n");
(void) fprintf(file, " i bit_test(i)\n");
for (i=0; i < test_length; i++)
(void) fprintf(file, "%3d%15d\n", i, bit_test(bs, i));
clearbits(bs, test_length);
(void) fprintf(file, "\ntest clearbits\n");
(void) fprintf(file, "be: 0 -1 ");
for (i=0; i < test_length; i++)
(void) fprintf(file, "%c", '0');
(void) fprintf(file, "\nis: ");
printbits(file, bs, test_length);
(void) fprintf(file, "\ntest bit_nset and bit_nclear\n");
bit_nset(bs, 1, test_length - 2);
(void) fprintf(file, "be: 0 1 0");
for (i=0; i < test_length - 2; i++)
(void) fprintf(file, "%c", '1');
(void) fprintf(file, "0\nis: ");
printbits(file, bs, test_length);
bit_nclear(bs, 2, test_length - 3);
(void) fprintf(file, "be: 0 1 01");
for (i=0; i < test_length - 4; i++)
(void) fprintf(file, "%c", '0');
(void) fprintf(file, "10\nis: ");
printbits(file, bs, test_length);
bit_nclear(bs, 0, test_length - 1);
(void) fprintf(file, "be: 0 -1 ");
for (i=0; i < test_length; i++)
(void) fprintf(file, "%c", '0');
(void) fprintf(file, "\nis: ");
printbits(file, bs, test_length);
bit_nset(bs, 0, test_length - 2);
(void) fprintf(file, "be: %3d 0 ",test_length - 1);
for (i=0; i < test_length - 1; i++)
(void) fprintf(file, "%c", '1');
fprintf(file, "%c", '0');
(void) fprintf(file, "\nis: ");
printbits(file, bs, test_length);
bit_nclear(bs, 0, test_length - 1);
(void) fprintf(file, "be: 0 -1 ");
for (i=0; i < test_length; i++)
(void) fprintf(file, "%c", '0');
(void) fprintf(file, "\nis: ");
printbits(file, bs, test_length);
(void) fprintf(file, "\n");
(void) fprintf(file, "first 1 bit should move right 1 position each line\n");
for (i=0; i < test_length; i++) {
bit_nclear(bs, 0, test_length - 1);
bit_nset(bs, i, test_length - 1);
(void) fprintf(file, "%3d ", i); printbits(file, bs, test_length);
}
(void) fprintf(file, "\n");
(void) fprintf(file, "first 0 bit should move right 1 position each line\n");
for (i=0; i < test_length; i++) {
bit_nset(bs, 0, test_length - 1);
bit_nclear(bs, i, test_length - 1);
(void) fprintf(file, "%3d ", i); printbits(file, bs, test_length);
}
(void) fprintf(file, "\n");
(void) fprintf(file, "first 0 bit should move left 1 position each line\n");
for (i=0; i < test_length; i++) {
bit_nclear(bs, 0, test_length - 1);
bit_nset(bs, 0, test_length - 1 - i);
(void) fprintf(file, "%3d ", i); printbits(file, bs, test_length);
}
(void) fprintf(file, "\n");
(void) fprintf(file, "first 1 bit should move left 1 position each line\n");
for (i=0; i < test_length; i++) {
bit_nset(bs, 0, test_length - 1);
bit_nclear(bs, 0, test_length - 1 - i);
(void) fprintf(file, "%3d ", i); printbits(file, bs, test_length);
}
(void) fprintf(file, "\n");
(void) fprintf(file, "0 bit should move right 1 position each line\n");
for (i=0; i < test_length; i++) {
bit_nset(bs, 0, test_length - 1);
bit_nclear(bs, i, i);
(void) fprintf(file, "%3d ", i); printbits(file, bs, test_length);
}
(void) fprintf(file, "\n");
(void) fprintf(file, "1 bit should move right 1 position each line\n");
for (i=0; i < test_length; i++) {
bit_nclear(bs, 0, test_length - 1);
bit_nset(bs, i, i);
(void) fprintf(file, "%3d ", i); printbits(file, bs, test_length);
}
(void) free(bs);
}
void
one_check(const atf_tc_t *tc, const int test_length)
{
FILE *out;
char command[1024];
ATF_REQUIRE((out = fopen("out", "w")) != NULL);
calculate_data(out, test_length);
fclose(out);
/* XXX The following is a huge hack that was added to simplify the
* conversion of these tests from src/regress/ to src/tests/. The
* tests in this file should be checking their own results, without
* having to resort to external data files. */
snprintf(command, sizeof(command), "diff -u %s/d_bitstring_%d.out out",
atf_tc_get_config_var(tc, "srcdir"), test_length);
if (system(command) != EXIT_SUCCESS)
atf_tc_fail("Test failed; see output for details");
}
ATF_TC(bits_8);
ATF_TC_HEAD(bits_8, tc)
{
atf_tc_set_md_var(tc, "descr", "Checks 8-bit long bitstrings");
atf_tc_set_md_var(tc, "use.fs", "true");
}
ATF_TC_BODY(bits_8, tc)
{
one_check(tc, 8);
}
ATF_TC(bits_27);
ATF_TC_HEAD(bits_27, tc)
{
atf_tc_set_md_var(tc, "descr", "Checks 27-bit long bitstrings");
atf_tc_set_md_var(tc, "use.fs", "true");
}
ATF_TC_BODY(bits_27, tc)
{
one_check(tc, 27);
}
ATF_TC(bits_32);
ATF_TC_HEAD(bits_32, tc)
{
atf_tc_set_md_var(tc, "descr", "Checks 32-bit long bitstrings");
atf_tc_set_md_var(tc, "use.fs", "true");
}
ATF_TC_BODY(bits_32, tc)
{
one_check(tc, 32);
}
ATF_TC(bits_49);
ATF_TC_HEAD(bits_49, tc)
{
atf_tc_set_md_var(tc, "descr", "Checks 49-bit long bitstrings");
atf_tc_set_md_var(tc, "use.fs", "true");
}
ATF_TC_BODY(bits_49, tc)
{
one_check(tc, 49);
}
ATF_TC(bits_64);
ATF_TC_HEAD(bits_64, tc)
{
atf_tc_set_md_var(tc, "descr", "Checks 64-bit long bitstrings");
atf_tc_set_md_var(tc, "use.fs", "true");
}
ATF_TC_BODY(bits_64, tc)
{
one_check(tc, 64);
}
ATF_TC(bits_67);
ATF_TC_HEAD(bits_67, tc)
{
atf_tc_set_md_var(tc, "descr", "Checks 67-bit long bitstrings");
atf_tc_set_md_var(tc, "use.fs", "true");
}
ATF_TC_BODY(bits_67, tc)
{
one_check(tc, 67);
}
ATF_TP_ADD_TCS(tp)
{
ATF_TP_ADD_TC(tp, bits_8);
ATF_TP_ADD_TC(tp, bits_27);
ATF_TP_ADD_TC(tp, bits_32);
ATF_TP_ADD_TC(tp, bits_49);
ATF_TP_ADD_TC(tp, bits_64);
ATF_TP_ADD_TC(tp, bits_67);
return atf_no_error();
}

250
tests/include/t_inttypes.c Normal file
View File

@ -0,0 +1,250 @@
/* $NetBSD: t_inttypes.c,v 1.1 2010/07/17 19:26:27 jmmv Exp $ */
/*-
* Copyright (c) 2001 The NetBSD Foundation, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>
#include <atf-c.h>
ATF_TC_WITHOUT_HEAD(fmt_io);
ATF_TC_BODY(fmt_io, tc)
{
char buf[64];
int8_t i8;
int16_t i16;
int32_t i32;
int64_t i64;
int_least8_t il8;
int_least16_t il16;
int_least32_t il32;
int_least64_t il64;
int_fast8_t if8;
int_fast16_t if16;
int_fast32_t if32;
int_fast64_t if64;
intmax_t im;
intptr_t ip;
uint8_t ui8;
uint16_t ui16;
uint32_t ui32;
uint64_t ui64;
uint_least8_t uil8;
uint_least16_t uil16;
uint_least32_t uil32;
uint_least64_t uil64;
uint_fast8_t uif8;
uint_fast16_t uif16;
uint_fast32_t uif32;
uint_fast64_t uif64;
uintmax_t uim;
uintptr_t uip;
#define PRINT(fmt, var) \
ATF_CHECK(snprintf(buf, sizeof(buf), "%" fmt, var) > 0)
#define SCAN(fmt, var) \
ATF_CHECK(sscanf(buf, "%" fmt, &var) > 0)
PRINT(PRId8, i8);
PRINT(PRId16, i16);
PRINT(PRId32, i32);
PRINT(PRId64, i64);
PRINT(PRIdLEAST8, il8);
PRINT(PRIdLEAST16, il16);
PRINT(PRIdLEAST32, il32);
PRINT(PRIdLEAST64, il64);
PRINT(PRIdFAST8, if8);
PRINT(PRIdFAST16, if16);
PRINT(PRIdFAST32, if32);
PRINT(PRIdFAST64, if64);
PRINT(PRIdMAX, im);
PRINT(PRIdPTR, ip);
PRINT(PRIi8, i8);
PRINT(PRIi16, i16);
PRINT(PRIi32, i32);
PRINT(PRIi64, i64);
PRINT(PRIiLEAST8, il8);
PRINT(PRIiLEAST16, il16);
PRINT(PRIiLEAST32, il32);
PRINT(PRIiLEAST64, il64);
PRINT(PRIiFAST8, if8);
PRINT(PRIiFAST16, if16);
PRINT(PRIiFAST32, if32);
PRINT(PRIiFAST64, if64);
PRINT(PRIiMAX, im);
PRINT(PRIiPTR, ip);
PRINT(PRIo8, ui8);
PRINT(PRIo16, ui16);
PRINT(PRIo32, ui32);
PRINT(PRIo64, ui64);
PRINT(PRIoLEAST8, uil8);
PRINT(PRIoLEAST16, uil16);
PRINT(PRIoLEAST32, uil32);
PRINT(PRIoLEAST64, uil64);
PRINT(PRIoFAST8, uif8);
PRINT(PRIoFAST16, uif16);
PRINT(PRIoFAST32, uif32);
PRINT(PRIoFAST64, uif64);
PRINT(PRIoMAX, uim);
PRINT(PRIoPTR, uip);
PRINT(PRIu8, ui8);
PRINT(PRIu16, ui16);
PRINT(PRIu32, ui32);
PRINT(PRIu64, ui64);
PRINT(PRIuLEAST8, uil8);
PRINT(PRIuLEAST16, uil16);
PRINT(PRIuLEAST32, uil32);
PRINT(PRIuLEAST64, uil64);
PRINT(PRIuFAST8, uif8);
PRINT(PRIuFAST16, uif16);
PRINT(PRIuFAST32, uif32);
PRINT(PRIuFAST64, uif64);
PRINT(PRIuMAX, uim);
PRINT(PRIuPTR, uip);
PRINT(PRIx8, ui8);
PRINT(PRIx16, ui16);
PRINT(PRIx32, ui32);
PRINT(PRIx64, ui64);
PRINT(PRIxLEAST8, uil8);
PRINT(PRIxLEAST16, uil16);
PRINT(PRIxLEAST32, uil32);
PRINT(PRIxLEAST64, uil64);
PRINT(PRIxFAST8, uif8);
PRINT(PRIxFAST16, uif16);
PRINT(PRIxFAST32, uif32);
PRINT(PRIxFAST64, uif64);
PRINT(PRIxMAX, uim);
PRINT(PRIxPTR, uip);
PRINT(PRIX8, ui8);
PRINT(PRIX16, ui16);
PRINT(PRIX32, ui32);
PRINT(PRIX64, ui64);
PRINT(PRIXLEAST8, uil8);
PRINT(PRIXLEAST16, uil16);
PRINT(PRIXLEAST32, uil32);
PRINT(PRIXLEAST64, uil64);
PRINT(PRIXFAST8, uif8);
PRINT(PRIXFAST16, uif16);
PRINT(PRIXFAST32, uif32);
PRINT(PRIXFAST64, uif64);
PRINT(PRIXMAX, uim);
PRINT(PRIXPTR, uip);
SCAN(SCNd8, i8);
SCAN(SCNd16, i16);
SCAN(SCNd32, i32);
SCAN(SCNd64, i64);
SCAN(SCNdLEAST8, il8);
SCAN(SCNdLEAST16, il16);
SCAN(SCNdLEAST32, il32);
SCAN(SCNdLEAST64, il64);
SCAN(SCNdFAST8, if8);
SCAN(SCNdFAST16, if16);
SCAN(SCNdFAST32, if32);
SCAN(SCNdFAST64, if64);
SCAN(SCNdMAX, im);
SCAN(SCNdPTR, ip);
SCAN(SCNi8, i8);
SCAN(SCNi16, i16);
SCAN(SCNi32, i32);
SCAN(SCNi64, i64);
SCAN(SCNiLEAST8, il8);
SCAN(SCNiLEAST16, il16);
SCAN(SCNiLEAST32, il32);
SCAN(SCNiLEAST64, il64);
SCAN(SCNiFAST8, if8);
SCAN(SCNiFAST16, if16);
SCAN(SCNiFAST32, if32);
SCAN(SCNiFAST64, if64);
SCAN(SCNiMAX, im);
SCAN(SCNiPTR, ip);
SCAN(SCNo8, ui8);
SCAN(SCNo16, ui16);
SCAN(SCNo32, ui32);
SCAN(SCNo64, ui64);
SCAN(SCNoLEAST8, uil8);
SCAN(SCNoLEAST16, uil16);
SCAN(SCNoLEAST32, uil32);
SCAN(SCNoLEAST64, uil64);
SCAN(SCNoFAST8, uif8);
SCAN(SCNoFAST16, uif16);
SCAN(SCNoFAST32, uif32);
SCAN(SCNoFAST64, uif64);
SCAN(SCNoMAX, uim);
SCAN(SCNoPTR, uip);
SCAN(SCNu8, ui8);
SCAN(SCNu16, ui16);
SCAN(SCNu32, ui32);
SCAN(SCNu64, ui64);
SCAN(SCNuLEAST8, uil8);
SCAN(SCNuLEAST16, uil16);
SCAN(SCNuLEAST32, uil32);
SCAN(SCNuLEAST64, uil64);
SCAN(SCNuFAST8, uif8);
SCAN(SCNuFAST16, uif16);
SCAN(SCNuFAST32, uif32);
SCAN(SCNuFAST64, uif64);
SCAN(SCNuMAX, uim);
SCAN(SCNuPTR, uip);
SCAN(SCNx8, ui8);
SCAN(SCNx16, ui16);
SCAN(SCNx32, ui32);
SCAN(SCNx64, ui64);
SCAN(SCNxLEAST8, uil8);
SCAN(SCNxLEAST16, uil16);
SCAN(SCNxLEAST32, uil32);
SCAN(SCNxLEAST64, uil64);
SCAN(SCNxFAST8, uif8);
SCAN(SCNxFAST16, uif16);
SCAN(SCNxFAST32, uif32);
SCAN(SCNxFAST64, uif64);
SCAN(SCNxMAX, uim);
SCAN(SCNxPTR, uip);
#undef SCAN
#undef PRINT
}
ATF_TP_ADD_TCS(tp)
{
ATF_TP_ADD_TC(tp, fmt_io);
return atf_no_error();
}

57
tests/include/t_limits.c Normal file
View File

@ -0,0 +1,57 @@
/* $NetBSD: t_limits.c,v 1.1 2010/07/17 19:26:27 jmmv Exp $ */
/*
* Copyright (c) 2008, 2010 The NetBSD Foundation, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <sys/cdefs.h>
__COPYRIGHT("@(#) Copyright (c) 2008, 2010\
The NetBSD Foundation, inc. All rights reserved.");
__RCSID("$NetBSD: t_limits.c,v 1.1 2010/07/17 19:26:27 jmmv Exp $");
#include <limits.h>
#include <atf-c.h>
ATF_TC_WITHOUT_HEAD(char);
ATF_TC_BODY(char, tc)
{
ATF_CHECK(CHAR_MIN < UCHAR_MAX);
}
ATF_TC_WITHOUT_HEAD(short);
ATF_TC_BODY(short, tc)
{
ATF_CHECK(SHRT_MIN < USHRT_MAX);
}
ATF_TP_ADD_TCS(tp)
{
ATF_TP_ADD_TC(tp, char);
ATF_TP_ADD_TC(tp, short);
return atf_no_error();
}

57
tests/include/t_stdint.c Normal file
View File

@ -0,0 +1,57 @@
/* $NetBSD: t_stdint.c,v 1.1 2010/07/17 19:26:27 jmmv Exp $ */
/*
* Copyright (c) 2008, 2010 The NetBSD Foundation, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <sys/cdefs.h>
__COPYRIGHT("@(#) Copyright (c) 2008, 2010\
The NetBSD Foundation, inc. All rights reserved.");
__RCSID("$NetBSD: t_stdint.c,v 1.1 2010/07/17 19:26:27 jmmv Exp $");
#include <stdint.h>
#include <atf-c.h>
ATF_TC_WITHOUT_HEAD(int8);
ATF_TC_BODY(int8, tc)
{
ATF_CHECK(INT8_MIN < UINT8_MAX);
}
ATF_TC_WITHOUT_HEAD(int16);
ATF_TC_BODY(int16, tc)
{
ATF_CHECK(INT16_MIN < UINT16_MAX);
}
ATF_TP_ADD_TCS(tp)
{
ATF_TP_ADD_TC(tp, int8);
ATF_TP_ADD_TC(tp, int16);
return atf_no_error();
}