diff options
| author | jvoisin | 2019-01-14 19:29:25 +0000 |
|---|---|---|
| committer | GitHub | 2019-01-14 19:29:25 +0000 |
| commit | e79f7e3bd992c7f0915ef9afe7afb6d79740527a (patch) | |
| tree | f881c25694eb00da2331a9ab280ec1c24a5662ab /src/tests/harden_rand | |
| parent | c943db586ac46b686b49bdf61d8473e39dd93000 (diff) | |
Reorganize the testsuite
Splitting the testsuite in several components makes it easier to manage and comprehend.
This was also needed some some tests aren't passing on Alpine Linux, but we still want to run
as many of them as we can on this platform.
Diffstat (limited to 'src/tests/harden_rand')
| -rw-r--r-- | src/tests/harden_rand/config/config_rand_harden_disabled.ini | 1 | ||||
| -rw-r--r-- | src/tests/harden_rand/config/harden_rand.ini | 1 | ||||
| -rw-r--r-- | src/tests/harden_rand/disable_handen_rand.phpt | 22 | ||||
| -rw-r--r-- | src/tests/harden_rand/harden_mt_rand.phpt | 22 | ||||
| -rw-r--r-- | src/tests/harden_rand/harden_mt_rand_range.phpt | 16 | ||||
| -rw-r--r-- | src/tests/harden_rand/harden_rand.phpt | 24 | ||||
| -rw-r--r-- | src/tests/harden_rand/harden_rand_noargs.phpt | 62 |
7 files changed, 148 insertions, 0 deletions
diff --git a/src/tests/harden_rand/config/config_rand_harden_disabled.ini b/src/tests/harden_rand/config/config_rand_harden_disabled.ini new file mode 100644 index 0000000..b9cd227 --- /dev/null +++ b/src/tests/harden_rand/config/config_rand_harden_disabled.ini | |||
| @@ -0,0 +1 @@ | |||
| sp.harden_random.disable(); | |||
diff --git a/src/tests/harden_rand/config/harden_rand.ini b/src/tests/harden_rand/config/harden_rand.ini new file mode 100644 index 0000000..89e19be --- /dev/null +++ b/src/tests/harden_rand/config/harden_rand.ini | |||
| @@ -0,0 +1 @@ | |||
| sp.harden_random.enable(); | |||
diff --git a/src/tests/harden_rand/disable_handen_rand.phpt b/src/tests/harden_rand/disable_handen_rand.phpt new file mode 100644 index 0000000..70e1382 --- /dev/null +++ b/src/tests/harden_rand/disable_handen_rand.phpt | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | --TEST-- | ||
| 2 | Harden rand | ||
| 3 | --SKIPIF-- | ||
| 4 | <?php if (!extension_loaded("snuffleupagus")) print "skip"; ?> | ||
| 5 | --INI-- | ||
| 6 | sp.configuration_file={PWD}/config/config_rand_harden_disabled.ini | ||
| 7 | --FILE-- | ||
| 8 | <?php | ||
| 9 | srand(0); | ||
| 10 | $a = rand(0,100)."\n"; | ||
| 11 | srand(0); | ||
| 12 | $b = rand(0,100)."\n"; | ||
| 13 | srand(0); | ||
| 14 | $c = rand(0,100)."\n"; | ||
| 15 | if ($a == $b && $a == $c) { | ||
| 16 | echo "win"; | ||
| 17 | } else { | ||
| 18 | echo "lose"; | ||
| 19 | } | ||
| 20 | ?> | ||
| 21 | --EXPECT-- | ||
| 22 | win | ||
diff --git a/src/tests/harden_rand/harden_mt_rand.phpt b/src/tests/harden_rand/harden_mt_rand.phpt new file mode 100644 index 0000000..da1ac16 --- /dev/null +++ b/src/tests/harden_rand/harden_mt_rand.phpt | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | --TEST-- | ||
| 2 | Harden mt_rand | ||
| 3 | --SKIPIF-- | ||
| 4 | <?php if (!extension_loaded("snuffleupagus")) print "skip"; ?> | ||
| 5 | --INI-- | ||
| 6 | sp.configuration_file={PWD}/config/harden_rand.ini | ||
| 7 | --FILE-- | ||
| 8 | <?php | ||
| 9 | mt_srand(0); | ||
| 10 | $a = mt_rand(0,100)."\n"; | ||
| 11 | $b = mt_rand(0,100)."\n"; | ||
| 12 | mt_srand(0); | ||
| 13 | $c = mt_rand(0,100)."\n"; | ||
| 14 | $d = mt_rand(0,100)."\n"; | ||
| 15 | |||
| 16 | if ($a == $c && $b == $d) | ||
| 17 | echo "a:$a, b:$b, c:$c, d:$d\n"; | ||
| 18 | else | ||
| 19 | echo 'win'; | ||
| 20 | ?> | ||
| 21 | --EXPECT-- | ||
| 22 | win | ||
diff --git a/src/tests/harden_rand/harden_mt_rand_range.phpt b/src/tests/harden_rand/harden_mt_rand_range.phpt new file mode 100644 index 0000000..0d5a5bf --- /dev/null +++ b/src/tests/harden_rand/harden_mt_rand_range.phpt | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | --TEST-- | ||
| 2 | Harden mt_rand range | ||
| 3 | --SKIPIF-- | ||
| 4 | <?php if (!extension_loaded("snuffleupagus")) print "skip"; ?> | ||
| 5 | --INI-- | ||
| 6 | sp.configuration_file={PWD}/config/harden_rand.ini | ||
| 7 | --FILE-- | ||
| 8 | <?php | ||
| 9 | for ($i=0; $i <=100; $i++) { | ||
| 10 | if (mt_rand(0,1) > 1) { | ||
| 11 | echo "Failed\n"; | ||
| 12 | } | ||
| 13 | } | ||
| 14 | |||
| 15 | ?> | ||
| 16 | --EXPECT-- | ||
diff --git a/src/tests/harden_rand/harden_rand.phpt b/src/tests/harden_rand/harden_rand.phpt new file mode 100644 index 0000000..336f5a7 --- /dev/null +++ b/src/tests/harden_rand/harden_rand.phpt | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | --TEST-- | ||
| 2 | Harden rand | ||
| 3 | --SKIPIF-- | ||
| 4 | <?php if (!extension_loaded("snuffleupagus")) print "skip"; ?> | ||
| 5 | --INI-- | ||
| 6 | sp.configuration_file={PWD}/config/harden_rand.ini | ||
| 7 | --FILE-- | ||
| 8 | <?php | ||
| 9 | srand(0); | ||
| 10 | $a = rand(0,1000)."\n"; | ||
| 11 | $b = rand(0,1000)."\n"; | ||
| 12 | srand(0); | ||
| 13 | $c = rand(0,1000)."\n"; | ||
| 14 | $d = rand(0,1000)."\n"; | ||
| 15 | |||
| 16 | rand(100,0)."\n"; | ||
| 17 | |||
| 18 | if ($a == $c && $b == $d) | ||
| 19 | echo "a:$a, b:$b, c:$c, d:$d\n"; | ||
| 20 | else | ||
| 21 | echo 'win'; | ||
| 22 | ?> | ||
| 23 | --EXPECT-- | ||
| 24 | win | ||
diff --git a/src/tests/harden_rand/harden_rand_noargs.phpt b/src/tests/harden_rand/harden_rand_noargs.phpt new file mode 100644 index 0000000..dc7d832 --- /dev/null +++ b/src/tests/harden_rand/harden_rand_noargs.phpt | |||
| @@ -0,0 +1,62 @@ | |||
| 1 | --TEST-- | ||
| 2 | Harden rand without any arguments | ||
| 3 | --SKIPIF-- | ||
| 4 | <?php if (!extension_loaded("snuffleupagus")) print "skip"; ?> | ||
| 5 | --INI-- | ||
| 6 | sp.configuration_file={PWD}/config/harden_rand.ini | ||
| 7 | We should fix this | ||
| 8 | --FILE-- | ||
| 9 | <?php | ||
| 10 | rand(); | ||
| 11 | mt_rand(); | ||
| 12 | |||
| 13 | rand(1); | ||
| 14 | mt_rand(1); | ||
| 15 | |||
| 16 | rand(1, 2); | ||
| 17 | mt_rand(1, 2); | ||
| 18 | |||
| 19 | rand(2, 1); | ||
| 20 | mt_rand(2, 1); | ||
| 21 | |||
| 22 | rand(2, 1, 0); | ||
| 23 | mt_rand(2, 1, 0); | ||
| 24 | |||
| 25 | rand("test", 1); | ||
| 26 | mt_rand("test", 1); | ||
| 27 | |||
| 28 | rand(1, "test"); | ||
| 29 | mt_rand(1, "test"); | ||
| 30 | |||
| 31 | rand(1, 2, "test"); | ||
| 32 | mt_rand(1, 2, "test"); | ||
| 33 | |||
| 34 | echo "Everything is fine\n"; | ||
| 35 | echo "Absolutely everything\n"; | ||
| 36 | echo 'Even with single quotes'; | ||
| 37 | ?> | ||
| 38 | --EXPECTF-- | ||
| 39 | Warning: rand() expects exactly 2 parameters, 1 given in %s/harden_rand_noargs.php on line %d | ||
| 40 | |||
| 41 | Warning: mt_rand() expects exactly 2 parameters, 1 given in %s/harden_rand_noargs.php on line %d | ||
| 42 | |||
| 43 | Warning: mt_rand(): max(1) is smaller than min(2) in %s/harden_rand_noargs.php on line %d | ||
| 44 | |||
| 45 | Warning: rand() expects exactly 2 parameters, 3 given in %s/harden_rand_noargs.php on line %d | ||
| 46 | |||
| 47 | Warning: mt_rand() expects exactly 2 parameters, 3 given in %s/harden_rand_noargs.php on line %d | ||
| 48 | |||
| 49 | Warning: rand() expects parameter 1 to be in%s, string given in %s/harden_rand_noargs.php on line %d | ||
| 50 | |||
| 51 | Warning: mt_rand() expects parameter 1 to be in%s, string given in %s/harden_rand_noargs.php on line %d | ||
| 52 | |||
| 53 | Warning: rand() expects parameter 2 to be in%s, string given in %s/harden_rand_noargs.php on line %d | ||
| 54 | |||
| 55 | Warning: mt_rand() expects parameter 2 to be in%s, string given in %s/harden_rand_noargs.php on line %d | ||
| 56 | |||
| 57 | Warning: rand() expects exactly 2 parameters, 3 given in %s/harden_rand_noargs.php on line %d | ||
| 58 | |||
| 59 | Warning: mt_rand() expects exactly 2 parameters, 3 given in %s/harden_rand_noargs.php on line %d | ||
| 60 | Everything is fine | ||
| 61 | Absolutely everything | ||
| 62 | Even with single quotes | ||
