xref: /aosp_15_r20/external/toybox/tests/nbd-client.test (revision cf5a6c84e2b8763fc1a7db14496fd4742913b199)
1#!/bin/bash
2
3[ -f testing.sh ] && . testing.sh
4
5#testing "name" "command" "result" "infile" "stdin"
6
7if [ "$(id -u)" -ne 0 ]
8then
9  echo "$SHOWSKIP: nbd-client (not root)"
10  return 2>/dev/null
11  exit
12fi
13
14# Test filesystem images
15
16# truncate -s256k ext2.img; mke2fs ext2.img; bzip2 < ext2.img | base64
17base64 -d | bzcat > ext2.img << EOF
18QlpoOTFBWSZTWbBa6EkAABn//////0BEGVhI8AFKBR1FzqBiBACiQgFgAEgAAhVAZ4QMsAEYJEFN
19I0AA0AAAABoGgAGmg2ppkHMJoDQGjRhGgxGmJkxNBhGgZAMmAkiSamj0I9BMmmmEaAAAANADQGmI
20Vsb7iiy5kJkdeO7Nijja84iwwpZrgb1C54RIVpgQISiSGEk87UjHU9lMEUdeBNZVp2dNZqlfPsaF
21m1bufdAsy3r0SJadGCGluQKTCBABVYyGSUjCNaq4AABbuvG2UToQVhiJkSMCCV3QCADJbdvuYpjo
22vsnYkYkIFnzihj/ICWNlSoOYMLqmT3wO4C5ZCEAztpmAFCV0rUUwIgcB45oB+8iI/vtvYqkkWU7T
23QiPrkylDZYYRPFZQUFGmgRAFgwEygDC+o7xtv26GOcRFYzdlo2G5i0Yg1WxsQYQJJJhfrCP6DgGA
24VSH+LuSKcKEhYLXQkg==
25EOF
26
27tuncate -s360k fat.img; mkfs.fat fat.img; bzip2 < fat.img | base64
28base64 -d | bzcat > fat.img << EOF
29QlpoOTFBWSZTWRzu2ngAC6j/v/C7YaDQITAEIwPHCTfv3CRAQAAUBAlAAkAABAhAC7AAu2oampqP
30SMgAGmmgAAM1AaZGE8oNU8lPU2piDQBoADQAGgaHpPUaBlIjaQAaAGgA0yaaMJk0Bo0KfAsgEkgE
31j8EGgCSAQSEwpVSi2ik+oAQCC0FJOUzrkxZikHndRLY4URVk3SAv4kdIUvCMR7xxaNBFDI63CTTL
32+9TioH4KEDXJDB1p4/uaA4CiIOROg4eLOL5FJBAk24CR6KFRyRLEdFnt1RnVbD9PKNZduYsKfdFB
335xE1ErWAhXDDdJmXHoknmTLMhczHhSlJogGAMDGDxLOsTj+LuSKcKEgOd208AA==
34EOF
35
36
37
38dd if=
39testcmd "
40
41echo "one" > file1
42echo "two" > file2
43testing "cat" "cat && echo yes" "oneyes\n" "" "one"
44testing "-" "cat - && echo yes" "oneyes\n" "" "one"
45testing "file1 file2" "cat file1 file2" "one\ntwo\n"  "" ""
46testing "- file"      "cat - file1"     "zero\none\n" "" "zero\n"
47testing "file -"      "cat file1 -"     "one\nzero\n" "" "zero\n"
48
49testing "file1 notfound file2" \
50        "cat file1 notfound file2 2>stderr && echo ok ; cat stderr; rm stderr" \
51        "one\ntwo\ncat: notfound: No such file or directory\n" "" ""
52
53testing "binary" \
54        'cat "$C" > file1 && cmp "$C" file1 && echo yes' "yes\n" "" ""
55
56testing "- file1" \
57        "cat - file1 | diff -a -U 0 - file1 | tail -n 1" \
58        "-hello\n" "" "hello\n"
59
60skipnot [ -e /dev/full ]
61testing "> /dev/full" \
62        "cat - > /dev/full 2>/dev/null || echo failed" \
63        "failed\n" "" "zero\n"
64
65rm file1 file2
66