Mon Jul 27 07:36:19 2020 UTC ()
Use the new "run_unsafe" atf_config_get() option also with a couple of other
tests that are known to be unsafe.


(jruoho)
diff -r1.3 -r1.4 src/tests/sbin/ifconfig/t_random_garbage.sh
diff -r1.3 -r1.4 src/tests/sbin/sysctl/t_random_garbage.sh

cvs diff -r1.3 -r1.4 src/tests/sbin/ifconfig/t_random_garbage.sh (expand / switch to unified diff)

--- src/tests/sbin/ifconfig/t_random_garbage.sh 2020/07/03 07:03:14 1.3
+++ src/tests/sbin/ifconfig/t_random_garbage.sh 2020/07/27 07:36:19 1.4
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1# $NetBSD: t_random_garbage.sh,v 1.3 2020/07/03 07:03:14 jruoho Exp $ 1# $NetBSD: t_random_garbage.sh,v 1.4 2020/07/27 07:36:19 jruoho Exp $
2# 2#
3# Copyright (c) 2020 The NetBSD Foundation, Inc. 3# Copyright (c) 2020 The NetBSD Foundation, Inc.
4# All rights reserved. 4# All rights reserved.
5# 5#
6# This code is derived from software contributed to The NetBSD Foundation 6# This code is derived from software contributed to The NetBSD Foundation
7# by Jukka Ruohonen. 7# by Jukka Ruohonen.
8# 8#
9# Redistribution and use in source and binary forms, with or without 9# Redistribution and use in source and binary forms, with or without
10# modification, are permitted provided that the following conditions 10# modification, are permitted provided that the following conditions
11# are met: 11# are met:
12# 1. Redistributions of source code must retain the above copyright 12# 1. Redistributions of source code must retain the above copyright
13# notice, this list of conditions and the following disclaimer. 13# notice, this list of conditions and the following disclaimer.
14# 2. Redistributions in binary form must reproduce the above copyright 14# 2. Redistributions in binary form must reproduce the above copyright
@@ -53,27 +53,29 @@ random_garbage_head() { @@ -53,27 +53,29 @@ random_garbage_head() {
53 53
54random_garbage_body() { 54random_garbage_body() {
55 55
56 # Please note: 56 # Please note:
57 # 57 #
58 # 1. As some drivers seem to have input validation issues, it may 58 # 1. As some drivers seem to have input validation issues, it may
59 # be possible that horrors are written directly to the hardware. 59 # be possible that horrors are written directly to the hardware.
60 # 60 #
61 # 2. Even if the test passes, there is no easy way to restore 61 # 2. Even if the test passes, there is no easy way to restore
62 # the existing state/configuration of any given interface. 62 # the existing state/configuration of any given interface.
63 # 63 #
64 # Take care. 64 # Take care.
65 # 65 #
66 atf_skip "The test is not safe (PR kern/55451)" 66 if ! [ $(atf_config_get "run_unsafe" "no") = "yes" ]; then
 67 atf_skip "The test is not safe (PR kern/55451)"
 68 fi
67 69
68 opts="advbase advskew broadcast carpdev description \ 70 opts="advbase advskew broadcast carpdev description \
69 media mediaopt -mediaopt mode instance metric mtu \ 71 media mediaopt -mediaopt mode instance metric mtu \
70 netmask state frag rts ssid nwid nwkey pass powersavesleep \ 72 netmask state frag rts ssid nwid nwkey pass powersavesleep \
71 bssid chan tunnel session cookie pltime prefixlen linkstr \ 73 bssid chan tunnel session cookie pltime prefixlen linkstr \
72 vhid vlan vlanif -vlanif agrport -agrport vltime maxupd \ 74 vhid vlan vlanif -vlanif agrport -agrport vltime maxupd \
73 syncdev syncpeer" 75 syncdev syncpeer"
74 76
75 for i in $(ifconfig -l); do 77 for i in $(ifconfig -l); do
76 78
77 ifconfig $i up 79 ifconfig $i up
78 80
79 for o in $opts; do 81 for o in $opts; do

cvs diff -r1.3 -r1.4 src/tests/sbin/sysctl/t_random_garbage.sh (expand / switch to unified diff)

--- src/tests/sbin/sysctl/t_random_garbage.sh 2020/07/03 07:03:14 1.3
+++ src/tests/sbin/sysctl/t_random_garbage.sh 2020/07/27 07:36:19 1.4
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1# $NetBSD: t_random_garbage.sh,v 1.3 2020/07/03 07:03:14 jruoho Exp $ 1# $NetBSD: t_random_garbage.sh,v 1.4 2020/07/27 07:36:19 jruoho Exp $
2# 2#
3# Copyright (c) 2020 The NetBSD Foundation, Inc. 3# Copyright (c) 2020 The NetBSD Foundation, Inc.
4# All rights reserved. 4# All rights reserved.
5# 5#
6# This code is derived from software contributed to The NetBSD Foundation 6# This code is derived from software contributed to The NetBSD Foundation
7# by Jukka Ruohonen. 7# by Jukka Ruohonen.
8# 8#
9# Redistribution and use in source and binary forms, with or without 9# Redistribution and use in source and binary forms, with or without
10# modification, are permitted provided that the following conditions 10# modification, are permitted provided that the following conditions
11# are met: 11# are met:
12# 1. Redistributions of source code must retain the above copyright 12# 1. Redistributions of source code must retain the above copyright
13# notice, this list of conditions and the following disclaimer. 13# notice, this list of conditions and the following disclaimer.
14# 2. Redistributions in binary form must reproduce the above copyright 14# 2. Redistributions in binary form must reproduce the above copyright
@@ -37,27 +37,29 @@ getrstr() { @@ -37,27 +37,29 @@ getrstr() {
37 echo $(cat /dev/urandom | head -n 1 | base64) 37 echo $(cat /dev/urandom | head -n 1 | base64)
38} 38}
39 39
40atf_test_case random_garbage cleanup 40atf_test_case random_garbage cleanup
41random_garbage_head() { 41random_garbage_head() {
42 sysctl -a > $tmp 42 sysctl -a > $tmp
43 atf_set "require.user" "root" 43 atf_set "require.user" "root"
44 atf_set "descr" "Test writing random garbage " \ 44 atf_set "descr" "Test writing random garbage " \
45 "to sysctl nodes (PR kern/55451)" 45 "to sysctl nodes (PR kern/55451)"
46} 46}
47 47
48random_garbage_body() { 48random_garbage_body() {
49 49
50 atf_skip "The test is not safe (PR kern/55451)" 50 if ! [ $(atf_config_get "run_unsafe" "no") = "yes" ]; then
 51 atf_skip "The test is not safe (PR kern/55451)"
 52 fi
51 53
52 while read line; do 54 while read line; do
53 55
54 var=$(echo $line | awk '{print $1}') 56 var=$(echo $line | awk '{print $1}')
55 57
56 case $var in 58 case $var in
57 hw.acpi.sleep.state) 59 hw.acpi.sleep.state)
58 echo "Skipping $var" 60 echo "Skipping $var"
59 continue 61 continue
60 ;; 62 ;;
61 63
62 kern.securelevel*) 64 kern.securelevel*)
63 echo "Skipping $var" 65 echo "Skipping $var"
@@ -77,27 +79,29 @@ random_garbage_body() { @@ -77,27 +79,29 @@ random_garbage_body() {
77 79
78 val=$(getrint) 80 val=$(getrint)
79 echo "Write $var -> $val" 81 echo "Write $var -> $val"
80 sysctl -w $var=$val 82 sysctl -w $var=$val
81 val=$(getrstr) 83 val=$(getrstr)
82 echo "Write $var -> $val" 84 echo "Write $var -> $val"
83 sysctl -w $var=$val 85 sysctl -w $var=$val
84 86
85 done < $tmp 87 done < $tmp
86} 88}
87 89
88random_garbage_cleanup() { 90random_garbage_cleanup() {
89 91
90 atf_skip "The test is not safe (PR kern/55451)" 92 if ! [ $(atf_config_get "run_unsafe" "no") = "yes" ]; then
 93 atf_skip "The test is not safe (PR kern/55451)"
 94 fi
91 95
92 while read line; do 96 while read line; do
93 var=$(echo $line | awk '{print $1}') 97 var=$(echo $line | awk '{print $1}')
94 val=$(echo $line | awk '{print $3}') 98 val=$(echo $line | awk '{print $3}')
95 echo "Restoring $var -> $val" 99 echo "Restoring $var -> $val"
96 sysctl -w $var=$val > /dev/null 2>&1 100 sysctl -w $var=$val > /dev/null 2>&1
97 done < $tmp 101 done < $tmp
98 102
99 rm $tmp 103 rm $tmp
100} 104}
101 105
102atf_init_test_cases() { 106atf_init_test_cases() {
103 atf_add_test_case random_garbage 107 atf_add_test_case random_garbage