#! /bin/bash -e

# Run GRUB script in a Qemu instance
# Copyright (C) 2010  Free Software Foundation, Inc.
#
# GRUB 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 3 of the License, or
# (at your option) any later version.
#
# GRUB 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.
#
# You should have received a copy of the GNU General Public License
# along with GRUB.  If not, see <http://www.gnu.org/licenses/>.

#
# Translating a string argument
#
cmd='tr 12345 abcde a1b2c3d4e5'
v=`echo "$cmd" | @builddir@/grub-shell`
if test "$v" != aabbccddee; then echo "error: $cmd [$v]" >&2; exit 1; fi

cmd='tr -U abcdABCD'
v=`echo "$cmd" | @builddir@/grub-shell`
if test "$v" != ABCDABCD; then echo "error: $cmd [$v]" >&2; exit 1; fi

cmd='tr -D ABCDabcd'
v=`echo "$cmd" | @builddir@/grub-shell`
if test "$v" != abcdabcd; then echo "error: $cmd [$v]" >&2; exit 1; fi

#
# Translating a variable value
#
cmd='foo=12345678; tr -s foo 1234 abcd; echo $foo'
v=`echo "$cmd" | @builddir@/grub-shell`
if test "$v" != abcd5678; then echo "error: $cmd [$v]" >&2; exit 1; fi

cmd='foo=abcdEFGH; tr -U -s foo; echo $foo'
v=`echo "$cmd" | @builddir@/grub-shell`
if test "$v" != ABCDEFGH; then echo "error: $cmd [$v]" >&2; exit 1; fi

cmd='foo=abcdEFGH; tr -D -s foo; echo $foo'
v=`echo "$cmd" | @builddir@/grub-shell`
if test "$v" != abcdefgh; then echo "error: $cmd [$v]" >&2; exit 1; fi

#
# Setting a variable from string argument
#
cmd='foo=12345678; tr -s foo 1234 abcd a1b2c3d4e5; echo $foo'
v=`echo "$cmd" | @builddir@/grub-shell`
if test "$v" != aabbccdde5; then echo "error: $cmd [$v]" >&2; exit 1; fi

cmd='foo=abcdEFGH; tr -U -s foo xyz; echo $foo'
v=`echo "$cmd" | @builddir@/grub-shell`
if test "$v" != XYZ; then echo "error: $cmd [$v]" >&2; exit 1; fi

cmd='foo=abcdEFGH; tr -D -s foo XYZ; echo $foo'
v=`echo "$cmd" | @builddir@/grub-shell`
if test "$v" != xyz; then echo "error: $cmd [$v]" >&2; exit 1; fi
