1#! /bin/bash
2# SPDX-License-Identifier: GPL-2.0
3
4set -e
5set -u
6set -x
7
8unset KBUILD_OUTPUT
9
10GENERATE_GCOV_REPORT=0
11while 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
25done
26
27CONF_FILE="tools/testing/selftests/net/config"
28
29# no modules
30scripts/config --file "$CONF_FILE" --disable CONFIG_MODULES
31
32# enable RDS
33scripts/config --file "$CONF_FILE" --enable CONFIG_RDS
34scripts/config --file "$CONF_FILE" --enable CONFIG_RDS_TCP
35
36if [ "$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
41else
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
45fi
46
47# need network namespaces to run tests with veth network interfaces
48scripts/config --file "$CONF_FILE" --enable CONFIG_NET_NS
49scripts/config --file "$CONF_FILE" --enable CONFIG_VETH
50
51# simulate packet loss
52scripts/config --file "$CONF_FILE" --enable CONFIG_NET_SCH_NETEM
53
54