libbb: updated config_parse() from Vladimir
[oweals/busybox.git] / testsuite / parse.tests
1 #!/bin/sh
2
3 # Copyright 2008 by Denys Vlasenko <vda.linux@googlemail.com>
4 # Licensed under GPL v2, see file LICENSE for details.
5
6 . testing.sh
7
8 NO_REDUCE=65536
9 NO_TRIM=131072
10 GREEDY=262144
11
12 # testing "description" "command" "result" "infile" "stdin"
13
14 testing "mdev.conf" \
15         "parse -n 4 -m 3 -f $GREEDY -" \
16         "[sda][0:0][644][@echo @echo TEST]\n" \
17         "-" \
18         " sda 0:0 644 @echo @echo TEST # echo trap\n"
19
20 testing "notrim" \
21         "parse -n 4 -m 3 -f $(($GREEDY+$NO_TRIM)) -" \
22         "[][sda][0:0][644 @echo @echo TEST ]\n" \
23         "-" \
24         " sda 0:0 644 @echo @echo TEST \n"
25
26 FILE=__parse.fstab
27 cat >$FILE <<EOF
28 #
29 # Device         Point               System                       Options
30 #_______________________________________________________________
31 /dev/hdb3       /                       ext2                 defaults      1          0
32    /dev/hdb1       /dosc               hpfs                 ro      1          0
33  /dev/fd0          /dosa              vfat                  rw,user,noauto,nohide        0              0
34         /dev/fd1          /dosb              vfat                  rw,user,noauto,nohide         0              0
35 #
36  /dev/cdrom     /cdrom            iso9660          ro,user,noauto,nohide         0              0
37 /dev/hdb5       /redhat            ext2                 rw,root,noauto,nohide    0              0 #sssd
38         /dev/hdb6       /win2home     ntfs                  rw,root,noauto,nohide        0              0# ssdsd
39 /dev/hdb7       /win2skul        ntfs                  rw,root,noauto,nohide none        0              0
40 none     /dev/pts           devpts             gid=5,mode=620                 0    0 
41      none                /proc               proc                defaults     0          0
42 EOF
43
44 cat >$FILE.res <<EOF
45 [/dev/hdb3][/][ext2][defaults][1][0]
46 [/dev/hdb1][/dosc][hpfs][ro][1][0]
47 [/dev/fd0][/dosa][vfat][rw,user,noauto,nohide][0][0]
48 [/dev/fd1][/dosb][vfat][rw,user,noauto,nohide][0][0]
49 [/dev/cdrom][/cdrom][iso9660][ro,user,noauto,nohide][0][0]
50 [/dev/hdb5][/redhat][ext2][rw,root,noauto,nohide][0][0]
51 [/dev/hdb6][/win2home][ntfs][rw,root,noauto,nohide][0][0]
52 [/dev/hdb7][/win2skul][ntfs][rw,root,noauto,nohide][none][0]
53 [none][/dev/pts][devpts][gid=5,mode=620][0][0]
54 [none][/proc][proc][defaults][0][0]
55 EOF
56
57 testing "polluted fstab" \
58         "parse -n 6 -m 6 $FILE" \
59         "`cat $FILE.res`\n" \
60         "" \
61         ""
62 rm -f $FILE $FILE.res
63
64 exit $FAILCOUNT