#!/bin/sh

# Copyright 2008 by Denys Vlasenko <vda.linux@googlemail.com>
# Licensed under GPL v2, see file LICENSE for details.

. ./testing.sh

COLLAPSE=$(( 0x00010000))
TRIM=$((     0x00020000))
GREEDY=$((   0x00040000))
MIN_DIE=$((  0x00100000))
KEEP_COPY=$((0x00200000))
ESCAPE=$((   0x00400000))
NORMAL=$((   COLLAPSE | TRIM | GREEDY))

# testing "description" "command" "result" "infile" "stdin"

testing "parse mdev.conf" \
	"parse -n 4 -m 3 -f $((NORMAL)) -" \
	"[sda][0:0][644][@echo @echo TEST]\n" \
	"-" \
	" sda 0:0 644 @echo @echo TEST # echo trap\n"

testing "parse notrim" \
	"parse -n 4 -m 3 -f $((NORMAL - TRIM - COLLAPSE)) -" \
	"[][sda][0:0][644 @echo @echo TEST ]\n" \
	"-" \
	" sda 0:0 644 @echo @echo TEST \n"

FILE=__parse
cat >$FILE <<EOF
#
# Device         Point               System                       Options
#_______________________________________________________________
/dev/hdb3       /                       ext2                 defaults      1          0
   /dev/hdb1       /dosc               hpfs                 ro      1          0
 /dev/fd0          /dosa              vfat                  rw,user,noauto,nohide	 0		0
	/dev/fd1          /dosb              vfat                  rw,user,noauto,nohide	 0		0
#
 /dev/cdrom     /cdrom            iso9660          ro,user,noauto,nohide	 0		0
/dev/hdb5       /redhat            ext2                 rw,root,noauto,nohide	 0		0 #sssd
	/dev/hdb6       /win2home     ntfs                  rw,root,noauto,nohide	 0		0# ssdsd
/dev/hdb7       /win2skul        ntfs                  rw,root,noauto,nohide none	 0		0
none     /dev/pts           devpts             gid=5,mode=620                 0    0 
     none                /proc               proc                defaults     0          0
EOF

cat >$FILE.res <<EOF
[/dev/hdb3][/][ext2][defaults][1][0]
[/dev/hdb1][/dosc][hpfs][ro][1][0]
[/dev/fd0][/dosa][vfat][rw,user,noauto,nohide][0][0]
[/dev/fd1][/dosb][vfat][rw,user,noauto,nohide][0][0]
[/dev/cdrom][/cdrom][iso9660][ro,user,noauto,nohide][0][0]
[/dev/hdb5][/redhat][ext2][rw,root,noauto,nohide][0][0]
[/dev/hdb6][/win2home][ntfs][rw,root,noauto,nohide][0][0]
[/dev/hdb7][/win2skul][ntfs][rw,root,noauto,nohide][none][0		0]
[none][/dev/pts][devpts][gid=5,mode=620][0][0]
[none][/proc][proc][defaults][0][0]
EOF

testing "parse polluted fstab" \
	"parse -n 6 -m 6 $FILE" \
	"`cat $FILE.res`\n" \
	"" \
	""
cp ../examples/inittab $FILE
cat >$FILE.res <<EOF
[][][sysinit][/etc/init.d/rcS]
[][][askfirst][-/bin/sh]
[tty2][][askfirst][-/bin/sh]
[tty3][][askfirst][-/bin/sh]
[tty4][][askfirst][-/bin/sh]
[tty4][][respawn][/sbin/getty 38400 tty5]
[tty5][][respawn][/sbin/getty 38400 tty6]
[][][restart][/sbin/init]
[][][ctrlaltdel][/sbin/reboot]
[][][shutdown][/bin/umount -a -r]
[][][shutdown][/sbin/swapoff -a]
EOF

testing "parse inittab from examples" \
	"parse -n 4 -m 4 -f $((NORMAL - TRIM - COLLAPSE)) -d'#:' $FILE" \
	"`cat $FILE.res`\n" \
	"" \
	""

cp ../examples/udhcp/udhcpd.conf $FILE
cat >$FILE.res <<EOF
[start][192.168.0.20]
[end][192.168.0.254]
[interface][eth0]
[opt][dns][192.168.10.2][192.168.10.10]
[option][subnet][255.255.255.0]
[opt][router][192.168.10.2]
[opt][wins][192.168.10.10]
[option][dns][129.219.13.81]
[option][domain][local]
[option][lease][864000]
EOF

testing "parse udhcpd.conf from examples" \
	"parse -n 127 $FILE" \
	"`cat $FILE.res`\n" \
	"" \
	""

rm -f $FILE $FILE.res

exit $FAILCOUNT
