Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/bc/scripts/sqrt_random.sh
39492 views
1
#! /bin/sh
2
#
3
# SPDX-License-Identifier: BSD-2-Clause
4
#
5
# Copyright (c) 2018-2025 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
scriptdir=$(dirname "$0")
31
32
gnu=/usr/bin/bc
33
gdh=/usr/local/bin/bc
34
35
if [ "$#" -lt 1 ]; then
36
printf 'err: must provide path to new bc\n'
37
exit 1
38
fi
39
40
new="$1"
41
shift
42
43
unset BC_LINE_LENGTH && unset BC_ENV_ARGS
44
45
gdh_fail_file="sqrt_fails.bc"
46
new_fail_file="new_sqrt_fails.bc"
47
48
rm -rf "$gdh_fail_file"
49
rm -rf "$new_fail_file"
50
51
while [ true ]; do
52
53
tst=$("$gdh" -l "$scriptdir/sqrt_random.bc")
54
err=$?
55
56
if [ "$err" -ne 0 ]; then
57
printf 'err: failed to create test\n'
58
exit 2
59
fi
60
61
good=$(printf '%s\n' "$tst" | "$gnu" -l)
62
63
gdh_out=$(printf '%s\n' "$tst" | "$gdh" -l)
64
new_out=$(printf '%s\n' "$tst" | "$new" -l)
65
66
gdh_good=$(printf '%s == %s\n' "$good" "$gdh_out" | "$gnu")
67
new_good=$(printf '%s == %s\n' "$good" "$new_out" | "$gnu")
68
69
if [ "$gdh_good" -eq 0 ]; then
70
printf '%s\n' "$tst" >> "$gdh_fail_file"
71
fi
72
73
if [ "$new_good" -eq 0 ]; then
74
printf '%s\n' "$tst" >> "$new_fail_file"
75
fi
76
77
done
78
79