1 #! /bin/bash
2 # SPDX-License-Identifier: GPL-2.0
3 
4 set -e
5 set -u
6 set -x
7 
8 unset KBUILD_OUTPUT
9 
10 GENERATE_GCOV_REPORT=0
11 while getopts "g" opt; do
12   case ${opt} in
13     g)
14       GENERATE_GCOV_REPORT=1
15       ;;
16     :)
17       echo "USAGE: config.sh [-g]"
18       exit 1
19       ;;
20     ?)
21       echo "Invalid option: -${OPTARG}."
22       exit 1
23       ;;
24   esac
25 done
26 
27 CONF_FILE="tools/testing/selftests/net/config"
28 
29 # no modules
30 scripts/config --file "$CONF_FILE" --disable CONFIG_MODULES
31 
32 # enable RDS
33 scripts/config --file "$CONF_FILE" --enable CONFIG_RDS
34 scripts/config --file "$CONF_FILE" --enable CONFIG_RDS_TCP
35 
36 if [ "$GENERATE_GCOV_REPORT" -eq 1 ]; then
37 	# instrument RDS and only RDS
38 	scripts/config --file "$CONF_FILE" --enable CONFIG_GCOV_KERNEL
39 	scripts/config --file "$CONF_FILE" --disable GCOV_PROFILE_ALL
40 	scripts/config --file "$CONF_FILE" --enable GCOV_PROFILE_RDS
41 else
42 	scripts/config --file "$CONF_FILE" --disable CONFIG_GCOV_KERNEL
43 	scripts/config --file "$CONF_FILE" --disable GCOV_PROFILE_ALL
44 	scripts/config --file "$CONF_FILE" --disable GCOV_PROFILE_RDS
45 fi
46 
47 # need network namespaces to run tests with veth network interfaces
48 scripts/config --file "$CONF_FILE" --enable CONFIG_NET_NS
49 scripts/config --file "$CONF_FILE" --enable CONFIG_VETH
50 
51 # simulate packet loss
52 scripts/config --file "$CONF_FILE" --enable CONFIG_NET_SCH_NETEM
53 
54