diff options
author | Andrés <andmarti@gmail.com> | 2021-06-02 13:48:31 -0300 |
---|---|---|
committer | Andrés <andmarti@gmail.com> | 2021-06-02 13:48:31 -0300 |
commit | a8c21be20d841aed9b38aa6876eac4e1ecd6004a (patch) | |
tree | 87015b380925e2e8b0105a1b0fde22eab031fcc2 /tests | |
parent | 2dc09da35ac9d4c9219bebeadbf77e4dbe76d955 (diff) |
Moved tests folder out of src
Diffstat (limited to 'tests')
-rw-r--r-- | tests/assert.sh | 186 | ||||
-rw-r--r-- | tests/calc1.sc | 13 | ||||
-rw-r--r-- | tests/calc2.sc | 4 | ||||
-rw-r--r-- | tests/calc3.sc | 45 | ||||
-rw-r--r-- | tests/gps.sc | 169 | ||||
-rw-r--r-- | tests/test1.sc | 13 | ||||
-rw-r--r-- | tests/test1.sh | 18 | ||||
-rw-r--r-- | tests/test1_vallog | 183 |
8 files changed, 400 insertions, 231 deletions
diff --git a/tests/assert.sh b/tests/assert.sh new file mode 100644 index 0000000..ffd2b95 --- /dev/null +++ b/tests/assert.sh @@ -0,0 +1,186 @@ +#!/bin/bash +# assert.sh 1.1 - bash unit testing framework +# Copyright (C) 2009-2015 Robert Lehmann +# +# http://github.com/lehmannro/assert.sh +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +export DISCOVERONLY=${DISCOVERONLY:-} +export DEBUG=${DEBUG:-} +export STOP=${STOP:-} +export INVARIANT=${INVARIANT:-} +export CONTINUE=${CONTINUE:-} + +args="$(getopt -n "$0" -l \ + verbose,help,stop,discover,invariant,continue vhxdic $*)" \ +|| exit -1 +for arg in $args; do + case "$arg" in + -h) + echo "$0 [-vxidc]" \ + "[--verbose] [--stop] [--invariant] [--discover] [--continue]" + echo "`sed 's/./ /g' <<< "$0"` [-h] [--help]" + exit 0;; + --help) + cat <<EOF +Usage: $0 [options] +Language-agnostic unit tests for subprocesses. + +Options: + -v, --verbose generate output for every individual test case + -x, --stop stop running tests after the first failure + -i, --invariant do not measure timings to remain invariant between runs + -d, --discover collect test suites only, do not run any tests + -c, --continue do not modify exit code to test suite status + -h show brief usage information and exit + --help show this help message and exit +EOF + exit 0;; + -v|--verbose) + DEBUG=1;; + -x|--stop) + STOP=1;; + -i|--invariant) + INVARIANT=1;; + -d|--discover) + DISCOVERONLY=1;; + -c|--continue) + CONTINUE=1;; + esac +done + +_indent=$'\n\t' # local format helper + +_assert_reset() { + tests_ran=0 + tests_failed=0 + tests_errors=() + tests_starttime="$(date +%s%N)" # nanoseconds_since_epoch +} + +assert_end() { + # assert_end [suite ..] + tests_endtime="$(date +%s%N)" + # required visible decimal place for seconds (leading zeros if needed) + local tests_time="$( \ + printf "%010d" "$(( ${tests_endtime/%N/000000000} + - ${tests_starttime/%N/000000000} ))")" # in ns + tests="$tests_ran ${*:+$* }tests" + [[ -n "$DISCOVERONLY" ]] && echo "collected $tests." && _assert_reset && return + [[ -n "$DEBUG" ]] && echo + # to get report_time split tests_time on 2 substrings: + # ${tests_time:0:${#tests_time}-9} - seconds + # ${tests_time:${#tests_time}-9:3} - milliseconds + [[ -z "$INVARIANT" ]] \ + && report_time=" in ${tests_time:0:${#tests_time}-9}.${tests_time:${#tests_time}-9:3}s" \ + || report_time= + + if [[ "$tests_failed" -eq 0 ]]; then + echo "all $tests passed$report_time." + else + for error in "${tests_errors[@]}"; do echo "$error"; done + echo "$tests_failed of $tests failed$report_time." + fi + tests_failed_previous=$tests_failed + [[ $tests_failed -gt 0 ]] && tests_suite_status=1 + _assert_reset +} + +assert() { + # assert <command> <expected stdout> [stdin] + (( tests_ran++ )) || : + [[ -z "$DISCOVERONLY" ]] || return + expected=$(echo -ne "${2:-}") + result="$(eval 2>/dev/null $1 <<< ${3:-})" || true + if [[ "$result" == "$expected" ]]; then + [[ -z "$DEBUG" ]] || echo -n . + return + fi + result="$(sed -e :a -e '$!N;s/\n/\\n/;ta' <<< "$result")" + [[ -z "$result" ]] && result="nothing" || result="\"$result\"" + [[ -z "$2" ]] && expected="nothing" || expected="\"$2\"" + _assert_fail "expected $expected${_indent}got $result" "$1" "$3" +} + +assert_raises() { + # assert_raises <command> <expected code> [stdin] + (( tests_ran++ )) || : + [[ -z "$DISCOVERONLY" ]] || return + status=0 + (eval $1 <<< ${3:-}) > /dev/null 2>&1 || status=$? + expected=${2:-0} + if [[ "$status" -eq "$expected" ]]; then + [[ -z "$DEBUG" ]] || echo -n . + return + fi + _assert_fail "program terminated with code $status instead of $expected" "$1" "$3" +} + +_assert_fail() { + # _assert_fail <failure> <command> <stdin> + [[ -n "$DEBUG" ]] && echo -n X + report="test #$tests_ran \"$2${3:+ <<< $3}\" failed:${_indent}$1" + if [[ -n "$STOP" ]]; then + [[ -n "$DEBUG" ]] && echo + echo "$report" + exit 1 + fi + tests_errors[$tests_failed]="$report" + (( tests_failed++ )) || : +} + +skip_if() { + # skip_if <command ..> + (eval $@) > /dev/null 2>&1 && status=0 || status=$? + [[ "$status" -eq 0 ]] || return + skip +} + +skip() { + # skip (no arguments) + shopt -q extdebug && tests_extdebug=0 || tests_extdebug=1 + shopt -q -o errexit && tests_errexit=0 || tests_errexit=1 + # enable extdebug so returning 1 in a DEBUG trap handler skips next command + shopt -s extdebug + # disable errexit (set -e) so we can safely return 1 without causing exit + set +o errexit + tests_trapped=0 + trap _skip DEBUG +} +_skip() { + if [[ $tests_trapped -eq 0 ]]; then + # DEBUG trap for command we want to skip. Do not remove the handler + # yet because *after* the command we need to reset extdebug/errexit (in + # another DEBUG trap.) + tests_trapped=1 + [[ -z "$DEBUG" ]] || echo -n s + return 1 + else + trap - DEBUG + [[ $tests_extdebug -eq 0 ]] || shopt -u extdebug + [[ $tests_errexit -eq 1 ]] || set -o errexit + return 0 + fi +} + + +_assert_reset +: ${tests_suite_status:=0} # remember if any of the tests failed so far +_assert_cleanup() { + local status=$? + # modify exit code if it's not already non-zero + [[ $status -eq 0 && -z $CONTINUE ]] && exit $tests_suite_status +} +trap _assert_cleanup EXIT diff --git a/tests/calc1.sc b/tests/calc1.sc deleted file mode 100644 index eed5a9f..0000000 --- a/tests/calc1.sc +++ /dev/null @@ -1,13 +0,0 @@ -#let A0 = 10 -#let C1 = F5+A0 -#let F1 = 10 -#let F3 = 20 -#let F5 = F1+F3 -#goto A0 - -let A0 = 10 -let C1 = F5+A0 -let F1 = 10 -let F3 = 20 -let F5 = F1+F3 -#goto A0 diff --git a/tests/calc2.sc b/tests/calc2.sc deleted file mode 100644 index 382f3c6..0000000 --- a/tests/calc2.sc +++ /dev/null @@ -1,4 +0,0 @@ -let A1 = 1 -let A2 = 2 -let A0 = @sum(A1:A2) -goto A0 diff --git a/tests/calc3.sc b/tests/calc3.sc deleted file mode 100644 index fdeaa81..0000000 --- a/tests/calc3.sc +++ /dev/null @@ -1,45 +0,0 @@ -# This data file was generated by the Spreadsheet Calculator. That is SC-IM, the improved one! -# You almost certainly shouldn't edit it. - -format A 20 3 0 -format B 20 3 1 -format C 20 3 2 -mark a A1 -mark b A1 -mark c A1 -mark d A1 -mark e A1 -mark f A1 -mark g A1 -mark h A1 -mark i A1 -mark j A1 -mark k A1 -mark l A1 -mark m A1 -mark n A1 -mark o A1 -mark p A1 -mark q A1 -mark r A1 -mark s A1 -mark t A1 -mark u A1 -mark v A1 -mark w A1 -mark x A1 -mark y A1 -mark z A1 -rightstring A0 = "fixed-point" -rightstring B0 = "scientific" -rightstring C0 = "engineering" -let A1 = 12300 -let B1 = 12300 -let C1 = 12300 -let A2 = 12300 -let B2 = 12300 -let C2 = 12300 -let A3 = @sum(A1:A2) -let B3 = @sum(B1:B2) -let C3 = @sum(C1:C2) -goto D1 diff --git a/tests/gps.sc b/tests/gps.sc deleted file mode 100644 index 49d6515..0000000 --- a/tests/gps.sc +++ /dev/null @@ -1,169 +0,0 @@ -# This data file was generated by the Spreadsheet Calculator. That is SC-IM, the improved one! -# You almost certainly shouldn't edit it. - -format A 11 2 0 -format B 28 2 0 -format C 21 2 0 -format D 12 2 2 -format F 12 2 2 -mark a B37 G38 -mark b A1 -mark c A1 -mark d A1 -mark e A1 -mark f A1 -mark g A1 -mark h A1 -mark i A1 -mark j A1 -mark k A1 -mark l A1 -mark m A1 -mark n A1 -mark o A1 -mark p A1 -mark q A1 -mark r A1 -mark s A6 G6 -mark t A1 -mark u A1 -mark v A1 -mark w A1 -mark x D4 -mark y A1 -mark z A1 -leftstring A0 = "Constants" -leftstring B1 = "Speed of light" -label C1 = "c" -let D1 = F1/1000 -label E1 = "km/s" -let F1 = 299492458 -label G1 = "m/s" -leftstring B2 = "Gravitational const" -label C2 = "G" -let F2 = 6.67408e-11 -label G2 = "N/kg" -leftstring B3 = "Mass of Earth" -label C3 = "m_E" -let F3 = 5.972e+24 -label G3 = "kg" -leftstring B4 = "Mean radius of Earth" -label C4 = "r_e" -let D4 = 6400 -label E4 = "km" -let F4 = D4*1000 -label G4 = "m" -leftstring A6 = "GPS signal" -leftstring B6 = "https://en.wikipedia.org/wiki/GPS_signals" -leftstring B7 = "L-band base (IF)" -label C7 = "ω_i" -let D7 = 10.23 -label E7 = "MHz" -let F7 = D7*1000000 -label G7 = "Hz" -leftstring B8 = "L1 carrier" -label C8 = "ω_1" -let D8 = D7*154 -label E8 = "MHz" -let F8 = D8*1000000 -label G8 = "Hz" -leftstring B9 = "L2 carrier" -label C9 = "ω_2" -let D9 = D7*120 -label E9 = "MHz" -let F9 = D9*1000000 -label G9 = "Hz" -leftstring B10 = "L3 carrier" -label C10 = "ω_3" -let D10 = D7*135 -label E10 = "MHz" -let F10 = D10*1000000 -label G10 = "Hz" -leftstring B11 = "L4 carrier" -label C11 = "ω_4" -let D11 = D7*1214/9 -label E11 = "MHz" -let F11 = D11*1000000 -label G11 = "Hz" -leftstring B12 = "L5 carrier" -label C12 = "ω_5" -let D12 = D7*115 -label E12 = "MHz" -let F12 = D12*1000000 -label G12 = "Hz" -leftstring B14 = "IF period" -label C14 = "τ_i" -let D14 = F14*1000000000 -label E14 = "ns" -let F14 = 1/F7 -label G14 = "Hz" -leftstring A16 = "Orbit" -leftstring B16 = "https://en.wikipedia.org/wiki/Global_Positioning_System" -leftstring B17 = "Min range" -label C17 = "r_min" -let D17 = 20180 -label E17 = "km" -let F17 = D17*1000 -label G17 = "m" -leftstring B18 = "Orbit radius" -label C18 = "r_o = r_min+r_e" -let D18 = F18/1000 -label E18 = "km" -let F18 = F17+F$4 -label G18 = "m" -leftstring B19 = "Max range (at horizon)" -label C19 = "r_max=√(r_o^2-r_e^2)" -let D19 = F19/1000 -label E19 = "km" -let F19 = @sqrt(F18*F18-F$4*F$4) -label G19 = "m" -leftstring B21 = "Light time min" -label C21 = "r_min/c" -let D21 = F21*1000 -label E21 = "ms" -let F21 = F17/$F$1 -label G21 = "s" -leftstring B22 = "Light time" -label C22 = "r_max/c" -let D22 = F22*1000 -label E22 = "ms" -let F22 = F19/$F$1 -label G22 = "s" -leftstring B24 = "Orbital speed" -label C24 = "v_o = √(G.m_E/r_o)" -let D24 = F24*3600/1000 -label E24 = "km/h" -let F24 = @sqrt(F$2*F$3/F18) -label G24 = "m/s" -leftstring B26 = "sin∠(horizon,Earth centre)" -label C26 = "sin θ = r_e/r_o" -let F26 = F$4/F18 -leftstring B27 = "Range rate at horizon" -label C27 = "v_h=v_o sin θ" -let D27 = F27*3600/1000 -label E27 = "km/h" -let F27 = F24*F26 -label G27 = "m/s" -leftstring A29 = "Max Doppler" -leftstring B30 = "Fractional Doppler" -label C30 = "z = v_h/c" -let F30 = F27/F$1 -leftstring B31 = "L1 shift" -label C31 = "z.ω_1" -let D31 = D8*F$30*1000 -label E31 = "kHz" -let F31 = D31*1000 -label G31 = "Hz" -leftstring B32 = "L2 shift" -label C32 = "z.ω_2" -let D32 = D9*F$30*1000 -label E32 = "kHz" -let F32 = D32*1000 -label G32 = "Hz" -cellcolor A0 "fg=BLACK bg=CYAN" -cellcolor A6 "fg=BLACK bg=CYAN" -cellcolor B6:G6 "fg=BLACK bg=YELLOW" -cellcolor A16 "fg=BLACK bg=CYAN" -cellcolor B16:G16 "fg=BLACK bg=YELLOW" -cellcolor A29 "fg=BLACK bg=CYAN" -goto A35 diff --git a/tests/test1.sc b/tests/test1.sc new file mode 100644 index 0000000..70177ba --- /dev/null +++ b/tests/test1.sc @@ -0,0 +1,13 @@ +# This data file was generated by the Spreadsheet Calculator Improvised (sc-im) +# You almost certainly shouldn't edit it. + +newsheet "Sheet1" +movetosheet "Sheet1" +let A0 = B0+2 +let B0 = 23 +newsheet "Sheet2" +movetosheet "Sheet2" +let A0 = 56 +movetosheet "Sheet1" +let C2 = {"Sheet2"}!A0 + A0 +goto B0 diff --git a/tests/test1.sh b/tests/test1.sh new file mode 100644 index 0000000..bfd710e --- /dev/null +++ b/tests/test1.sh @@ -0,0 +1,18 @@ +#!/bin/bash +## SEE https://github.com/lehmannro/assert.sh for usage + +#Exit immediately if a command exits with a non-zero status. +set -e + +NAME=test1 + +echo -n $NAME": " +VALGRIND_CMD='valgrind -v --log-file=${NAME}_vallog --tool=memcheck --track-origins=yes --leak-check=full --show-leak-kinds=all --show-reachable=no' +. assert.sh +assert "echo GETNUM C2 | $VALGRIND_CMD ../src/sc-im ${NAME}.sc --nocurses --nodebug --quit_afterload 2>&1 |grep -v '^$\|Interp'" "81" + +#TODO: check valgrind log here +#"in use at exit: 0 bytes in 0 blocks" +#"All heap blocks were freed -- no leaks are possible" + +assert_end test1 diff --git a/tests/test1_vallog b/tests/test1_vallog new file mode 100644 index 0000000..a12afc0 --- /dev/null +++ b/tests/test1_vallog @@ -0,0 +1,183 @@ +==169506== Memcheck, a memory error detector +==169506== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. +==169506== Using Valgrind-3.17.0-07f0cdcbb4-20210319X and LibVEX; rerun with -h for copyright info +==169506== Command: ../src/sc-im test1.sc --nocurses --nodebug --quit_afterload +==169506== Parent PID: 169504 +==169506== +--169506-- +--169506-- Valgrind options: +--169506-- -v +--169506-- --log-file=test1_vallog +--169506-- --tool=memcheck +--169506-- --track-origins=yes +--169506-- --leak-check=full +--169506-- --show-leak-kinds=all +--169506-- --show-reachable=no +--169506-- Contents of /proc/version: +--169506-- Linux version 5.12.8-arch1-1 (linux@archlinux) (gcc (GCC) 11.1.0, GNU ld (GNU Binutils) 2.36.1) #1 SMP PREEMPT Fri, 28 May 2021 15:10:20 +0000 +--169506-- +--169506-- Arch and hwcaps: AMD64, LittleEndian, amd64-cx16-lzcnt-rdtscp-sse3-ssse3-avx-avx2-bmi-f16c-rdrand-rdseed +--169506-- Page sizes: currently 4096, max supported 4096 +--169506-- Valgrind library directory: /usr/lib/valgrind +--169506-- Reading syms from /home/mongo/scim/src/sc-im +--169506-- Reading syms from /usr/lib/ld-2.33.so +--169506-- Reading syms from /usr/lib/valgrind/memcheck-amd64-linux +--169506-- object doesn't have a dynamic symbol table +--169506-- Scheduler: using generic scheduler lock implementation. +--169506-- Reading suppressions file: /usr/lib/valgrind/default.supp +==169506== embedded gdbserver: reading from /tmp/vgdb-pipe-from-vgdb-to-169506-by-mongo-on-??? +==169506== embedded gdbserver: writing to /tmp/vgdb-pipe-to-vgdb-from-169506-by-mongo-on-??? +==169506== embedded gdbserver: shared mem /tmp/vgdb-pipe-shared-mem-vgdb-169506-by-mongo-on-??? +==169506== +==169506== TO CONTROL THIS PROCESS USING vgdb (which you probably +==169506== don't want to do, unless you know exactly what you're doing, +==169506== or are doing some strange experiment): +==169506== /usr/lib/valgrind/../../bin/vgdb --pid=169506 ...command... +==169506== +==169506== TO DEBUG THIS PROCESS USING GDB: start GDB like this +==169506== /path/to/gdb ../src/sc-im +==169506== and then give GDB the following command +==169506== target remote | /usr/lib/valgrind/../../bin/vgdb --pid=169506 +==169506== --pid is optional if only one valgrind process is running +==169506== +--169506-- REDIR: 0x4023890 (ld-linux-x86-64.so.2:strlen) redirected to 0x580bb342 (vgPlain_amd64_linux_REDIR_FOR_strlen) +--169506-- REDIR: 0x4023660 (ld-linux-x86-64.so.2:index) redirected to 0x580bb35c (vgPlain_amd64_linux_REDIR_FOR_index) +--169506-- Reading syms from /usr/lib/valgrind/vgpreload_core-amd64-linux.so +--169506-- Reading syms from /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so +==169506== WARNING: new redirection conflicts with existing -- ignoring it +--169506-- old: 0x04023890 (strlen ) R-> (0000.0) 0x580bb342 vgPlain_amd64_linux_REDIR_FOR_strlen +--169506-- new: 0x04023890 (strlen ) R-> (2007.0) 0x048448d0 strlen +--169506-- REDIR: 0x4020070 (ld-linux-x86-64.so.2:strcmp) redirected to 0x4845730 (strcmp) +--169506-- REDIR: 0x4023df0 (ld-linux-x86-64.so.2:mempcpy) redirected to 0x48491a0 (mempcpy) +--169506-- Reading syms from /usr/lib/libm-2.33.so +--169506-- object doesn't have a symbol table +--169506-- Reading syms from /usr/lib/libdl-2.33.so +--169506-- object doesn't have a symbol table +--169506-- Reading syms from /usr/lib/libncursesw.so.6.2 +--169506-- object doesn't have a symbol table +--169506-- Reading syms from /usr/lib/libxml2.so.2.9.10 +--169506-- object doesn't have a symbol table +--169506-- Reading syms from /usr/lib/libzip.so.5.3 +--169506-- object doesn't have a symbol table +--169506-- Reading syms from /usr/lib/libxlsxwriter.so +--169506-- object doesn't have a symbol table +--169506-- Reading syms from /usr/lib/liblua.so.5.4.3 +--169506-- object doesn't have a symbol table +--169506-- Reading syms from /usr/lib/libpthread-2.33.so +--169506-- Reading syms from /usr/lib/libc-2.33.so +--169506-- Reading syms from /usr/lib/libicuuc.so.69.1 +--169506-- object doesn't have a symbol table +--169506-- Reading syms from /usr/lib/libz.so.1.2.11 +--169506-- object doesn't have a symbol table +--169506-- Reading syms from /usr/lib/liblzma.so.5.2.5 +--169506-- object doesn't have a symbol table +--169506-- Reading syms from /usr/lib/libbz2.so.1.0.8 +--169506-- object doesn't have a symbol table +--169506-- Reading syms from /usr/lib/libgnutls.so.30.30.0 +--169506-- object doesn't have a symbol table +--169506-- Reading syms from /usr/lib/libnettle.so.8.3 +--169506-- object doesn't have a symbol table +--169506-- Reading syms from /usr/lib/libstdc++.so.6.0.29 +--169506-- Reading syms from /usr/lib/libgcc_s.so.1 +--169506-- Reading syms from /usr/lib/libp11-kit.so.0.3.0 +--169506-- object doesn't have a symbol table +--169506-- Reading syms from /usr/lib/libidn2.so.0.3.7 +--169506-- object doesn't have a symbol table +--169506-- Reading syms from /usr/lib/libunistring.so.2.1.0 +--169506-- object doesn't have a symbol table +--169506-- Reading syms from /usr/lib/libtasn1.so.6.6.1 +--169506-- object doesn't have a symbol table +--169506-- Reading syms from /usr/lib/libhogweed.so.6.3 +--169506-- object doesn't have a symbol table +--169506-- Reading syms from /usr/lib/libgmp.so.10.4.1 +--169506-- object doesn't have a symbol table +--169506-- Reading syms from /usr/lib/libffi.so.7.1.0 +--169506-- object doesn't have a symbol table +--169506-- REDIR: 0x4d0c0b0 (libc.so.6:memmove) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +==169506== Preferring higher priority redirection: +--169506-- old: 0x04ddf510 (__memcpy_avx_unalign) R-> (2018.0) 0x04846980 __memcpy_avx_unaligned_erms +--169506-- new: 0x04ddf510 (__memcpy_avx_unalign) R-> (2018.1) 0x04848220 memmove +--169506-- REDIR: 0x4d0b5b0 (libc.so.6:strncpy) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d0c3f0 (libc.so.6:strcasecmp) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d0b050 (libc.so.6:strcat) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d0b610 (libc.so.6:rindex) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d0d7a0 (libc.so.6:rawmemchr) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d257f0 (libc.so.6:wmemchr) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d25330 (libc.so.6:wcscmp) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d0c210 (libc.so.6:mempcpy) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d0c040 (libc.so.6:bcmp) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d0b540 (libc.so.6:strncmp) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d0b100 (libc.so.6:strcmp) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d0c180 (libc.so.6:memset) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d252f0 (libc.so.6:wcschr) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d0b4a0 (libc.so.6:strnlen) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d0b1e0 (libc.so.6:strcspn) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d0c440 (libc.so.6:strncasecmp) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d0b180 (libc.so.6:strcpy) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d0c590 (libc.so.6:memcpy@@GLIBC_2.14) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d26a40 (libc.so.6:wcsnlen) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d25370 (libc.so.6:wcscpy) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d0b650 (libc.so.6:strpbrk) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d0b0b0 (libc.so.6:index) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d0b460 (libc.so.6:strlen) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d11c10 (libc.so.6:memrchr) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d0c490 (libc.so.6:strcasecmp_l) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d0c000 (libc.so.6:memchr) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d25440 (libc.so.6:wcslen) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d0b770 (libc.so.6:strspn) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d0c390 (libc.so.6:stpncpy) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d0c330 (libc.so.6:stpcpy) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d0d7e0 (libc.so.6:strchrnul) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d0c4e0 (libc.so.6:strncasecmp_l) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d0bf20 (libc.so.6:strstr) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d87a70 (libc.so.6:__memcpy_chk) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d0b4e0 (libc.so.6:strncat) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4d87b40 (libc.so.6:__memmove_chk) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +==169506== WARNING: new redirection conflicts with existing -- ignoring it +--169506-- old: 0x04ddf500 (__memcpy_chk_avx_una) R-> (2030.0) 0x04849290 __memcpy_chk +--169506-- new: 0x04ddf500 (__memcpy_chk_avx_una) R-> (2024.0) 0x04848c30 __memmove_chk +==169506== WARNING: new redirection conflicts with existing -- ignoring it +--169506-- old: 0x04ddf500 (__memcpy_chk_avx_una) R-> (2030.0) 0x04849290 __memcpy_chk +--169506-- new: 0x04ddf500 (__memcpy_chk_avx_una) R-> (2024.0) 0x04848c30 __memmove_chk +==169506== WARNING: new redirection conflicts with existing -- ignoring it +--169506-- old: 0x04ddf500 (__memcpy_chk_avx_una) R-> (2030.0) 0x04849290 __memcpy_chk +--169506-- new: 0x04ddf500 (__memcpy_chk_avx_una) R-> (2024.0) 0x04848c30 __memmove_chk +--169506-- REDIR: 0x4d254e0 (libc.so.6:wcsncmp) redirected to 0x48331b0 (_vgnU_ifunc_wrapper) +--169506-- REDIR: 0x4ddc330 (libc.so.6:__strrchr_avx2) redirected to 0x4844310 (rindex) +--169506-- REDIR: 0x4ddc500 (libc.so.6:__strlen_avx2) redirected to 0x48447b0 (strlen) +--169506-- REDIR: 0x4dd8af0 (libc.so.6:__memcmp_avx2_movbe) redirected to 0x48479c0 (bcmp) +--169506-- REDIR: 0x4dd7e30 (libc.so.6:__strncmp_avx2) redirected to 0x4844e80 (strncmp) +--169506-- REDIR: 0x4ddbf10 (libc.so.6:__strchr_avx2) redirected to 0x4844490 (index) +--169506-- REDIR: 0x4dd79f0 (libc.so.6:__strcmp_avx2) redirected to 0x4845630 (strcmp) +--169506-- REDIR: 0x4d07320 (libc.so.6:malloc) redirected to 0x483e750 (malloc) +--169506-- REDIR: 0x4ddf510 (libc.so.6:__memcpy_avx_unaligned_erms) redirected to 0x4848220 (memmove) +--169506-- REDIR: 0x4d080f0 (libc.so.6:calloc) redirected to 0x4843550 (calloc) +--169506-- REDIR: 0x4ddf500 (libc.so.6:__memcpy_chk_avx_unaligned_erms) redirected to 0x4849290 (__memcpy_chk) +--169506-- REDIR: 0x4d07980 (libc.so.6:free) redirected to 0x4841120 (free) +--169506-- REDIR: 0x4dd8360 (libc.so.6:__memchr_avx2) redirected to 0x48457b0 (memchr) +--169506-- REDIR: 0x4ddc140 (libc.so.6:__strchrnul_avx2) redirected to 0x4848ca0 (strchrnul) +--169506-- REDIR: 0x4ddf4f0 (libc.so.6:__mempcpy_avx_unaligned_erms) redirected to 0x4848db0 (mempcpy) +--169506-- REDIR: 0x4dde730 (libc.so.6:__stpcpy_avx2) redirected to 0x4847ae0 (stpcpy) +--169506-- REDIR: 0x4d0bc20 (libc.so.6:__GI_strstr) redirected to 0x4849430 (__strstr_sse2) +--169506-- REDIR: 0x4ddddd0 (libc.so.6:__strncpy_avx2) redirected to 0x4844a80 (strncpy) +--169506-- REDIR: 0x4d07c20 (libc.so.6:realloc) redirected to 0x48437c0 (realloc) +--169506-- REDIR: 0x4ddf9a0 (libc.so.6:__memset_avx2_unaligned_erms) redirected to 0x4848120 (memset) +--169506-- REDIR: 0x4ddda40 (libc.so.6:__strcpy_avx2) redirected to 0x4844900 (strcpy) +--169506-- REDIR: 0x4ddd030 (libc.so.6:__strncat_avx2) redirected to 0x4844660 (strncat) +--169506-- REDIR: 0x4d24410 (libc.so.6:__strstr_sse2_unaligned) redirected to 0x48493a0 (strstr) +--169506-- REDIR: 0x4dd8ed0 (libc.so.6:__strcasecmp_avx) redirected to 0x4845000 (strcasecmp) +--169506-- REDIR: 0x4dd78c0 (libc.so.6:__strspn_sse42) redirected to 0x4849690 (strspn) +--169506-- REDIR: 0x4dd7660 (libc.so.6:__strcspn_sse42) redirected to 0x48495b0 (strcspn) +--169506-- REDIR: 0x4ddc6a0 (libc.so.6:__strnlen_avx2) redirected to 0x4844750 (strnlen) +--169506-- REDIR: 0x4dd8630 (libc.so.6:__rawmemchr_avx2) redirected to 0x4848cd0 (rawmemchr) +--169506-- REDIR: 0x4ddfe20 (libc.so.6:__wmemchr_avx2) redirected to 0x4849a40 (wmemchr) +--169506-- REDIR: 0x4de1040 (libc.so.6:__wcsnlen_avx2) redirected to 0x4849830 (wcsnlen) +--169506-- REDIR: 0x4de0e80 (libc.so.6:__wcslen_avx2) redirected to 0x4849800 (wcslen) +==169506== +==169506== HEAP SUMMARY: +==169506== in use at exit: 0 bytes in 0 blocks +==169506== total heap usage: 4,398 allocs, 4,398 frees, 424,410 bytes allocated +==169506== +==169506== All heap blocks were freed -- no leaks are possible +==169506== +==169506== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) |