#!/bin/bash # This file is part of util-linux. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This file 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 General Public License for more details. TS_TOPDIR="${0%/*}/../.." TS_DESC="setarch" . $TS_TOPDIR/functions.sh ts_init "$*" ts_check_test_command "$TS_CMD_SETARCH" ARCH=$(uname -m) ts_init_subtest options echo "###### unknown arch" >>$TS_OUTPUT $TS_CMD_SETARCH qubit -v echo "success" >>$TS_OUTPUT 2>&1 echo "exit: $?" >>$TS_OUTPUT echo "###### unknown command" >>$TS_OUTPUT $TS_CMD_SETARCH $ARCH -v /das/gibs/nicht >>$TS_OUTPUT 2>&1 echo "exit: $?" >>$TS_OUTPUT echo "###### noop uname -a" >>$TS_OUTPUT uname_a=$(uname -srm) $TS_CMD_SETARCH $ARCH -v uname -srm >>$TS_OUTPUT 2>&1 sed -i "$ s@${uname_a}@uname -a unchanged@" $TS_OUTPUT echo "###### almost all options" >>$TS_OUTPUT $TS_CMD_SETARCH $ARCH -vRFZLXBIST3 echo "success" >>$TS_OUTPUT 2>&1 ts_finalize_subtest ts_init_subtest uname26 finmsg="" # for debugging 2.6 issues echo "###### --uname-2.6 echo" >>$TS_OUTPUT $TS_CMD_SETARCH $ARCH -v --uname-2.6 echo "2.6 worked" >>$TS_OUTPUT 2>&1 if [ $? -eq 0 ]; then expected='^2.6 worked$' else # this may happen after execvp expected="^FATAL: kernel too old$" finmsg+=" echo" fi sed -i "$ s/$expected/2.6 works or kernel too old/" $TS_OUTPUT echo "###### --uname-2.6 true, non-verbose" >>$TS_OUTPUT $TS_CMD_SETARCH $ARCH --uname-2.6 true >>$TS_OUTPUT 2>&1 if [ $? -eq 0 ]; then echo "2.6 works or kernel too old" >> $TS_OUTPUT else # this may happen after execvp expected="^FATAL: kernel too old$" sed -i "$ s/$expected/2.6 works or kernel too old/" $TS_OUTPUT finmsg+=" true" fi if [ -n "$finmsg" ]; then finmsg=$(echo unsupported --uname-2.6: $finmsg) else uname26_seems_supported=yes fi ts_finalize_subtest "$finmsg" # conditional subtest if [ "$uname26_seems_supported" = "yes" ]; then ts_init_subtest uname26-version tmp=$($TS_CMD_SETARCH $ARCH --uname-2.6 uname -r) if echo "$tmp" | grep -q "^2\.6\."; then echo "kernel version changed to 2.6" >> $TS_OUTPUT else echo "uname26 failed" >> $TS_OUTPUT echo "original kernel: $(uname -r)" >> $TS_OUTPUT echo "uname26 kernel: $tmp" >> $TS_OUTPUT fi ts_finalize_subtest fi # conditional subtest ts_finalize