| #! /bin/bash |
| # SPDX-License-Identifier: GPL-2.0 |
| |
| set -e |
| set -u |
| set -x |
| |
| unset KBUILD_OUTPUT |
| |
| GENERATE_GCOV_REPORT=0 |
| while getopts "g" opt; do |
| case ${opt} in |
| g) |
| GENERATE_GCOV_REPORT=1 |
| ;; |
| :) |
| echo "USAGE: config.sh [-g]" |
| exit 1 |
| ;; |
| ?) |
| echo "Invalid option: -${OPTARG}." |
| exit 1 |
| ;; |
| esac |
| done |
| |
| CONF_FILE="tools/testing/selftests/net/config" |
| |
| # no modules |
| scripts/config --file "$CONF_FILE" --disable CONFIG_MODULES |
| |
| # enable RDS |
| scripts/config --file "$CONF_FILE" --enable CONFIG_RDS |
| scripts/config --file "$CONF_FILE" --enable CONFIG_RDS_TCP |
| |
| if [ "$GENERATE_GCOV_REPORT" -eq 1 ]; then |
| # instrument RDS and only RDS |
| scripts/config --file "$CONF_FILE" --enable CONFIG_GCOV_KERNEL |
| scripts/config --file "$CONF_FILE" --disable GCOV_PROFILE_ALL |
| scripts/config --file "$CONF_FILE" --enable GCOV_PROFILE_RDS |
| else |
| scripts/config --file "$CONF_FILE" --disable CONFIG_GCOV_KERNEL |
| scripts/config --file "$CONF_FILE" --disable GCOV_PROFILE_ALL |
| scripts/config --file "$CONF_FILE" --disable GCOV_PROFILE_RDS |
| fi |
| |
| # need network namespaces to run tests with veth network interfaces |
| scripts/config --file "$CONF_FILE" --enable CONFIG_NET_NS |
| scripts/config --file "$CONF_FILE" --enable CONFIG_VETH |
| |
| # simulate packet loss |
| scripts/config --file "$CONF_FILE" --enable CONFIG_NET_SCH_NETEM |
| |