Magellan Linux

Diff of /tags/grubby-8_34/test.sh

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2057 by niro, Wed Feb 20 14:05:36 2013 UTC revision 2683 by niro, Wed Jul 16 09:51:14 2014 UTC
# Line 48  oneTest() { Line 48  oneTest() {
48      typeset mode=$1 cfg=test/$2 correct=test/results/$3      typeset mode=$1 cfg=test/$2 correct=test/results/$3
49      shift 3      shift 3
50    
51        local ENV_FILE=""
52        if [ "$mode" == "--grub2" ]; then
53            ENV_FILE="test/grub2-support_files/env_temp"
54            if [ "$1" == "--env" ]; then
55                cp "test/grub2-support_files/$2" "$ENV_FILE"
56                shift 2
57            else
58                cp "test/grub2-support_files/grubenv.0" "$ENV_FILE"
59            fi
60            ENV_FILE="--env=$ENV_FILE"
61        fi
62    
63    
64      echo "$testing ... $mode $cfg $correct"      echo "$testing ... $mode $cfg $correct"
65      runme=( ./grubby "$mode" --bad-image-okay -c "$cfg" -o - "$@" )      runme=( ./grubby "$mode" --bad-image-okay $ENV_FILE -c "$cfg" -o - "$@" )
66      if "${runme[@]}" | cmp "$correct" > /dev/null; then      if "${runme[@]}" | cmp "$correct" > /dev/null; then
67   (( pass++ ))   (( pass++ ))
68   if $opt_verbose; then   if $opt_verbose; then
# Line 74  oneTest() { Line 87  oneTest() {
87  oneDisplayTest() {  oneDisplayTest() {
88      typeset mode=$1 cfg=test/$2 correct=test/results/$3      typeset mode=$1 cfg=test/$2 correct=test/results/$3
89      shift 3      shift 3
90    
91        local ENV_FILE=""
92        if [ "$mode" == "--grub2" ]; then
93            ENV_FILE="test/grub2-support_files/env_temp"
94            if [ "$1" == "--env" ]; then
95                cp "test/grub2-support_files/$2" "$ENV_FILE"
96                shift 2
97            else
98                cp "test/grub2-support_files/grubenv.0" "$ENV_FILE"
99            fi
100            ENV_FILE="--env=$ENV_FILE"
101        fi
102    
103      local BIO="--bad-image-okay"      local BIO="--bad-image-okay"
104      if [ "$1" == "--bad-image-bad" ]; then      if [ "$1" == "--bad-image-bad" ]; then
105          BIO=""          BIO=""
# Line 81  oneDisplayTest() { Line 107  oneDisplayTest() {
107      fi      fi
108    
109      echo "$testing ... $mode $cfg $correct"      echo "$testing ... $mode $cfg $correct"
110      runme=( ./grubby "$mode" $BIO -c "$cfg" "$@" )      runme=( ./grubby "$mode" $BIO $ENV_FILE -c "$cfg" "$@" )
111      if "${runme[@]}" 2>&1 | cmp "$correct" > /dev/null; then      if "${runme[@]}" 2>&1 | cmp "$correct" > /dev/null; then
112   (( pass++ ))   (( pass++ ))
113   if $opt_verbose; then   if $opt_verbose; then
# Line 101  oneDisplayTest() { Line 127  oneDisplayTest() {
127      fi      fi
128  }  }
129    
130    commandTest() {
131        description=$1
132        cmd0=$2
133        text1=$3
134        shift 3
135        echo "$description"
136        output0=$(mktemp)
137    
138        $cmd0 > $output0
139    
140        if echo $text1 | cmp $output0 - >/dev/null; then
141     (( pass++))
142     if $opt_verbose; then
143        echo -------------------------------------------------------------
144        echo -n "PASS: "
145        printf "%q " "\"$cmd0\""; echo
146        echo $text1 | diff -U30 $output0 -
147        echo
148     fi
149        else
150     (( fail++ ))
151     echo -------------------------------------------------------------
152     echo -n "FAIL: "
153     printf "%q " "\"$cmd0\""; echo
154     echo $text1 | diff -U30 $output0 -
155     echo
156        fi
157    }
158    
159  # generate convenience functions  # generate convenience functions
160  for b in $(./grubby --help | \  for b in $(./grubby --help | \
161   sed -n 's/^.*--\([^ ]*\) *configure \1 bootloader$/\1/p'); do   sed -n 's/^.*--\([^ ]*\) *configure \1 bootloader$/\1/p'); do
# Line 208  grubTest grub.3 default/g3.2 --boot-file Line 263  grubTest grub.3 default/g3.2 --boot-file
263  grubTest grub.4 default/g4.1 --boot-filesystem=/ --set-default=/boot/vmlinuz-2.4.7-ac3 --remove-kernel /boot/vmlinuz-2.4.7-2.5  grubTest grub.4 default/g4.1 --boot-filesystem=/ --set-default=/boot/vmlinuz-2.4.7-ac3 --remove-kernel /boot/vmlinuz-2.4.7-2.5
264  grubTest grub.4 default/g4.2 --boot-filesystem=/ --set-default=/boot/vmlinuz-2.4.7-ac3 --remove-kernel /boot/vmlinuz-2.4.7-2.5 --add-kernel=/boot/new-kernel --copy-default --title New_Title  grubTest grub.4 default/g4.2 --boot-filesystem=/ --set-default=/boot/vmlinuz-2.4.7-ac3 --remove-kernel /boot/vmlinuz-2.4.7-2.5 --add-kernel=/boot/new-kernel --copy-default --title New_Title
265  grubTest grub.6 default/g6.1 --remove-kernel=/boot/vmlinuz-2.4.7-2.9 --boot-filesystem=/  grubTest grub.6 default/g6.1 --remove-kernel=/boot/vmlinuz-2.4.7-2.9 --boot-filesystem=/
 grubTest grub.14 add/g1.7 --boot-filesystem=/boot --add-kernel /boot/new-kernel --title Some_Title  
266    
267  testing="GRUB default index directive"  testing="GRUB default index directive"
268  grubTest grub.13 setdefaultindex/g.13.0 --set-default-index=0  grubTest grub.13 setdefaultindex/g.13.0 --set-default-index=0
# Line 378  grubTest grub.11 add/g11.1 --add-kernel= Line 432  grubTest grub.11 add/g11.1 --add-kernel=
432      --initrd=/boot/new-initrd --boot-filesystem=/boot --copy-default \      --initrd=/boot/new-initrd --boot-filesystem=/boot --copy-default \
433      --args='console=tty0 console=ttyS1,9600n81 single'      --args='console=tty0 console=ttyS1,9600n81 single'
434    
435  testing="GRUB2 add kernel"  testgrub2=n
436  grub2Test grub2.1 add/g2-1.1 --add-kernel=/boot/new-kernel.img --title='title' \  ARCH=$(uname -m | sed s,i[3456789]86,ia32,)
437      --initrd=/boot/new-initrd --boot-filesystem=/boot/ --copy-default  case $ARCH in
438  grub2Test grub2.1 add/g2-1.6 --add-kernel=/boot/new-kernel.img --title='title' \      aarch64|ppc|ppc64|ia32|x86_64) testgrub2=y ;;
439      --initrd=/boot/new-initrd --boot-filesystem=/boot/ --copy-default --efi  esac
440  grub2Test grub2.6 add/g2-1.7 --add-kernel=/boot/new-kernel.img --title='title' \  
441      --initrd=/boot/new-initrd --boot-filesystem=/boot/ --copy-default --efi  if [ "$testgrub2" == "y" ]; then
442  grub2Test grub2.1 add/g2-1.2 --add-kernel=/boot/new-kernel.img --title='title' \      testing="GRUB2 add kernel"
443      --initrd=/boot/new-initrd --boot-filesystem=/boot/ \      grub2Test grub2.1 add/g2-1.1 --add-kernel=/boot/new-kernel.img \
444      --copy-default --make-default          --title='title' --initrd=/boot/new-initrd --boot-filesystem=/boot/ \
445  grub2Test grub2.1 add/g2-1.3 --add-kernel=/boot/new-kernel.img --title='title' \          --copy-default
446      --boot-filesystem=/boot/ --copy-default --make-default      grub2Test grub2.1 add/g2-1.6 --add-kernel=/boot/new-kernel.img \
447  grub2Test grub2.1 remove/g2-1.4 --remove-kernel=/boot/vmlinuz-2.6.38.2-9.fc15.x86_64 \          --title='title' --initrd=/boot/new-initrd --boot-filesystem=/boot/ \
448      --boot-filesystem=/boot/          --copy-default --efi
449  grub2Test grub2.5 add/g2-1.5 --add-kernel=/boot/new-kernel.img --title='title' \      grub2Test grub2.6 add/g2-1.7 --add-kernel=/boot/new-kernel.img \
450      --initrd=/boot/new-initrd --boot-filesystem=/boot/ --copy-default          --title='title' --initrd=/boot/new-initrd --boot-filesystem=/boot/ \
451            --copy-default --efi
452  testing="GRUB2 add initrd"      grub2Test grub2.1 add/g2-1.2 --add-kernel=/boot/new-kernel.img \
453  grub2Test grub2.2 add/g2-1.4 --update-kernel=/boot/new-kernel.img \          --title='title' --initrd=/boot/new-initrd --boot-filesystem=/boot/ \
454      --initrd=/boot/new-initrd --boot-filesystem=/boot/          --copy-default --make-default
455        grub2Test grub2.1 add/g2-1.3 --add-kernel=/boot/new-kernel.img \
456  testing="GRUB2 display default index"          --title='title' --boot-filesystem=/boot/ --copy-default --make-default
457  grub2DisplayTest grub2.1 defaultindex/0 --default-index      grub2Test grub2.1 remove/g2-1.4 \
458  grub2DisplayTest grub2.2 defaultindex/0 --default-index          --remove-kernel=/boot/vmlinuz-2.6.38.2-9.fc15.x86_64 \
459            --boot-filesystem=/boot/
460  testing="GRUB2 display default title"      grub2Test grub2.5 add/g2-1.5 --add-kernel=/boot/new-kernel.img \
461  grub2DisplayTest grub2.1 defaulttitle/g2.1 --default-title          --title='title' --initrd=/boot/new-initrd --boot-filesystem=/boot/ \
462  grub2DisplayTest grub2.2 defaulttitle/g2.2 --default-title          --copy-default
463    
464  testing="GRUB2 display debug failure"      testing="GRUB2 add initrd"
465  grub2DisplayTest grub2.1 debug/g2.1 --bad-image-bad --boot-filesystem=/boot --default-kernel --debug      grub2Test grub2.2 add/g2-1.4 --update-kernel=/boot/new-kernel.img \
466  testing="GRUB2 display debug success"          --initrd=/boot/new-initrd --boot-filesystem=/boot/
467  grub2DisplayTest grub2.1 debug/g2.1.2 --boot-filesystem=/boot --default-kernel --debug  
468        testing="GRUB2 display default index"
469  testing="GRUB2 remove kernel via index"      grub2DisplayTest grub2.1 defaultindex/0 --default-index
470  grub2Test grub2.3 remove/g2-1.1 --remove-kernel=1      grub2DisplayTest grub2.2 defaultindex/0 --default-index
471    
472  testing="GRUB2 remove kernel via title"      testing="GRUB2 display default title"
473  grub2Test grub2.3 remove/g2-1.1 --remove-kernel="TITLE=title2"      grub2DisplayTest grub2.1 defaulttitle/g2.1 --default-title
474        grub2DisplayTest grub2.2 defaulttitle/g2.2 --default-title
475  testing="GRUB2 (submenu) remove kernel via index"  
476  grub2Test grub2.4 remove/g2-1.2 --remove-kernel=2      testing="GRUB2 display debug failure"
477        grub2DisplayTest grub2.1 debug/g2.1 --bad-image-bad \
478  testing="GRUB2 (submenu) remove kernel via title"          --boot-filesystem=/boot --default-kernel --debug
479  grub2Test grub2.4 remove/g2-1.2 --remove-kernel="TITLE=title2"      testing="GRUB2 display debug success"
480        grub2DisplayTest grub2.1 debug/g2.1.2 --boot-filesystem=/boot \
481  testing="GRUB2 default index directive"          --default-kernel --debug
482  grub2Test grub2.1 setdefaultindex/g2.1.0 --set-default-index=0  
483  grub2Test grub2.1 setdefaultindex/g2.1.1 --set-default-index=1      testing="GRUB2 remove kernel via index"
484  grub2Test grub2.1 setdefaultindex/g2.1.9 --set-default-index=9      grub2Test grub2.3 remove/g2-1.1 --remove-kernel=1
485    
486        testing="GRUB2 remove kernel via title"
487        grub2Test grub2.3 remove/g2-1.1 --remove-kernel="TITLE=title2"
488    
489        testing="GRUB2 (submenu) remove kernel via index"
490        grub2Test grub2.4 remove/g2-1.2 --remove-kernel=2
491    
492        testing="GRUB2 (submenu) remove kernel via title"
493        grub2Test grub2.4 remove/g2-1.2 --remove-kernel="TITLE=title2"
494    
495        testing="GRUB2 default index directive"
496        grub2Test grub2.1 setdefaultindex/g2.1.0 --set-default-index=0
497        grub2Test grub2.1 setdefaultindex/g2.1.1 --set-default-index=1
498        grub2Test grub2.1 setdefaultindex/g2.1.9 --set-default-index=9
499    
500        testing="GRUB2 add kernel with default=saved_entry"
501        grub2Test grub2.7 add/g2-1.8 --env grubenv.1 \
502            --add-kernel=/boot/new-kernel.img \
503            --title='title' --initrd=/boot/new-initrd --boot-filesystem=/boot/ \
504            --copy-default
505        commandTest "saved_default output" \
506            "grub2-editenv test/grub2-support_files/env_temp list" \
507            "saved_entry=Linux, with Fedora 2.6.38.8-32.fc15.x86_64"
508    
509        testing="GRUB2 add kernel with default=saved_entry and a terrible title"
510        grub2Test grub2.7 add/g2-1.9 --env grubenv.1 \
511            --add-kernel=/boot/new-kernel.img \
512            --title='Fedora (3.10.3-300.fc19.x86_64) 19 (Schrödinger’s Cat)' \
513            --initrd=/boot/new-initrd --boot-filesystem=/boot/ \
514            --copy-default
515    
516        testing="GRUB2 set default with default=saved_entry and a terrible name"
517        grub2Test grub2.9 add/g2-1.9 --env grubenv.1 --set-default-index=0
518        commandTest "saved_default output" \
519            "grub2-editenv test/grub2-support_files/env_temp list" \
520            'saved_entry=Fedora (3.10.3-300.fc19.x86_64) 19 (Schrödinger’s Cat)'
521    
522        testing="GRUB2 set default with default=saved_entry"
523        grub2Test grub2.8 add/g2-1.8 --env grubenv.1 --set-default-index=0
524        commandTest "saved_default output" \
525            "grub2-editenv test/grub2-support_files/env_temp list" \
526            "saved_entry=title"
527    
528        testing="GRUB2 --default-index with default=saved_entry"
529        grub2DisplayTest grub2.8 defaultindex/1 --env grubenv.1 --default-index
530    
531        testing="GRUB2 --default-index with default=saved_entry"
532        grub2DisplayTest grub2.8 defaultindex/0 --env grubenv.2 --default-index
533    
534        testing="GRUB2 --default-title with default=saved_entry"
535        grub2DisplayTest grub2.8 defaulttitle/g2.1 --env grubenv.1 --default-title
536    
537        testing="GRUB2 --default-index with default=saved_entry and empty grubenv"
538        grub2DisplayTest grub2.8 defaultindex/0 --env grubenv.0 --default-index
539    
540        testlinux16=n
541        case $ARCH in
542            ia32|x86_64) testlinux16=y ;;
543        esac
544    
545        if [ "$testlinux16" == "y" ]; then
546            testing="GRUB2 add kernel with linux16"
547            grub2Test grub2.10 add/g2-1.10 --add-kernel=/boot/new-kernel.img \
548                --title='title' --initrd=/boot/new-initrd --boot-filesystem=/boot/ \
549                --copy-default
550    
551            testing="GRUB2 add initrd with linux16"
552            grub2Test grub2.11 add/g2-1.11 --update-kernel=/boot/new-kernel.img \
553                --initrd=/boot/new-initrd --boot-filesystem=/boot/
554        fi
555    fi
556    
557  testing="YABOOT add kernel"  testing="YABOOT add kernel"
558  yabootTest yaboot.1 add/y1.1 --copy-default --boot-filesystem=/ --add-kernel=/boot/new-kernel  \  yabootTest yaboot.1 add/y1.1 --copy-default --boot-filesystem=/ --add-kernel=/boot/new-kernel  \

Legend:
Removed from v.2057  
changed lines
  Added in v.2683