• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#! /bin/sh
2#
3# SPDX-License-Identifier: BSD-2-Clause
4#
5# Copyright (c) 2018-2021 Gavin D. Howard and contributors.
6#
7# Redistribution and use in source and binary forms, with or without
8# modification, are permitted provided that the following conditions are met:
9#
10# * Redistributions of source code must retain the above copyright notice, this
11#   list of conditions and the following disclaimer.
12#
13# * Redistributions in binary form must reproduce the above copyright notice,
14#   this list of conditions and the following disclaimer in the documentation
15#   and/or other materials provided with the distribution.
16#
17# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
21# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27# POSSIBILITY OF SUCH DAMAGE.
28#
29
30# This script's argument is a number, which is the index of the setting set
31# that is under test. This script is for maintainers only.
32#
33# The procedure is this: run the script with:
34#
35# ./scripts/test_settings.sh 1
36#
37# Then run bc and dc to ensure their stuff is correct. Then run this script
38# again with:
39#
40# ./scripts/test_settings.sh 2
41#
42# And repeat. You can also test various environment variable sets with them.
43
44# Print the usage and exit with an error.
45usage() {
46	printf 'usage: %s index\n' "$0" 1>&2
47	exit 1
48}
49
50script="$0"
51scriptdir=$(dirname "$script")
52
53cd "$scriptdir/.."
54
55test "$#" -eq 1 || usage
56
57target="$1"
58shift
59
60line=0
61
62# This loop just loops until it gets to the right line. Quick and dirty.
63while read s; do
64
65	line=$(printf '%s + 1\n' "$line" | bc)
66
67	if [ "$line" -eq "$target" ]; then
68
69		# Configure, build, and exit.
70		./configure.sh -O3 $s
71
72		make -j16 > /dev/null
73
74		exit
75	fi
76
77done < "$scriptdir/test_settings.txt"
78