xref: /aosp_15_r20/external/toybox/tests/nbd-client.test (revision cf5a6c84e2b8763fc1a7db14496fd4742913b199)
1*cf5a6c84SAndroid Build Coastguard Worker#!/bin/bash
2*cf5a6c84SAndroid Build Coastguard Worker
3*cf5a6c84SAndroid Build Coastguard Worker[ -f testing.sh ] && . testing.sh
4*cf5a6c84SAndroid Build Coastguard Worker
5*cf5a6c84SAndroid Build Coastguard Worker#testing "name" "command" "result" "infile" "stdin"
6*cf5a6c84SAndroid Build Coastguard Worker
7*cf5a6c84SAndroid Build Coastguard Workerif [ "$(id -u)" -ne 0 ]
8*cf5a6c84SAndroid Build Coastguard Workerthen
9*cf5a6c84SAndroid Build Coastguard Worker  echo "$SHOWSKIP: nbd-client (not root)"
10*cf5a6c84SAndroid Build Coastguard Worker  return 2>/dev/null
11*cf5a6c84SAndroid Build Coastguard Worker  exit
12*cf5a6c84SAndroid Build Coastguard Workerfi
13*cf5a6c84SAndroid Build Coastguard Worker
14*cf5a6c84SAndroid Build Coastguard Worker# Test filesystem images
15*cf5a6c84SAndroid Build Coastguard Worker
16*cf5a6c84SAndroid Build Coastguard Worker# truncate -s256k ext2.img; mke2fs ext2.img; bzip2 < ext2.img | base64
17*cf5a6c84SAndroid Build Coastguard Workerbase64 -d | bzcat > ext2.img << EOF
18*cf5a6c84SAndroid Build Coastguard WorkerQlpoOTFBWSZTWbBa6EkAABn//////0BEGVhI8AFKBR1FzqBiBACiQgFgAEgAAhVAZ4QMsAEYJEFN
19*cf5a6c84SAndroid Build Coastguard WorkerI0AA0AAAABoGgAGmg2ppkHMJoDQGjRhGgxGmJkxNBhGgZAMmAkiSamj0I9BMmmmEaAAAANADQGmI
20*cf5a6c84SAndroid Build Coastguard WorkerVsb7iiy5kJkdeO7Nijja84iwwpZrgb1C54RIVpgQISiSGEk87UjHU9lMEUdeBNZVp2dNZqlfPsaF
21*cf5a6c84SAndroid Build Coastguard Workerm1bufdAsy3r0SJadGCGluQKTCBABVYyGSUjCNaq4AABbuvG2UToQVhiJkSMCCV3QCADJbdvuYpjo
22*cf5a6c84SAndroid Build Coastguard WorkervsnYkYkIFnzihj/ICWNlSoOYMLqmT3wO4C5ZCEAztpmAFCV0rUUwIgcB45oB+8iI/vtvYqkkWU7T
23*cf5a6c84SAndroid Build Coastguard WorkerQiPrkylDZYYRPFZQUFGmgRAFgwEygDC+o7xtv26GOcRFYzdlo2G5i0Yg1WxsQYQJJJhfrCP6DgGA
24*cf5a6c84SAndroid Build Coastguard WorkerVSH+LuSKcKEhYLXQkg==
25*cf5a6c84SAndroid Build Coastguard WorkerEOF
26*cf5a6c84SAndroid Build Coastguard Worker
27*cf5a6c84SAndroid Build Coastguard Workertuncate -s360k fat.img; mkfs.fat fat.img; bzip2 < fat.img | base64
28*cf5a6c84SAndroid Build Coastguard Workerbase64 -d | bzcat > fat.img << EOF
29*cf5a6c84SAndroid Build Coastguard WorkerQlpoOTFBWSZTWRzu2ngAC6j/v/C7YaDQITAEIwPHCTfv3CRAQAAUBAlAAkAABAhAC7AAu2oampqP
30*cf5a6c84SAndroid Build Coastguard WorkerSMgAGmmgAAM1AaZGE8oNU8lPU2piDQBoADQAGgaHpPUaBlIjaQAaAGgA0yaaMJk0Bo0KfAsgEkgE
31*cf5a6c84SAndroid Build Coastguard Workerj8EGgCSAQSEwpVSi2ik+oAQCC0FJOUzrkxZikHndRLY4URVk3SAv4kdIUvCMR7xxaNBFDI63CTTL
32*cf5a6c84SAndroid Build Coastguard Worker+9TioH4KEDXJDB1p4/uaA4CiIOROg4eLOL5FJBAk24CR6KFRyRLEdFnt1RnVbD9PKNZduYsKfdFB
33*cf5a6c84SAndroid Build Coastguard Worker5xE1ErWAhXDDdJmXHoknmTLMhczHhSlJogGAMDGDxLOsTj+LuSKcKEgOd208AA==
34*cf5a6c84SAndroid Build Coastguard WorkerEOF
35*cf5a6c84SAndroid Build Coastguard Worker
36*cf5a6c84SAndroid Build Coastguard Worker
37*cf5a6c84SAndroid Build Coastguard Worker
38*cf5a6c84SAndroid Build Coastguard Workerdd if=
39*cf5a6c84SAndroid Build Coastguard Workertestcmd "
40*cf5a6c84SAndroid Build Coastguard Worker
41*cf5a6c84SAndroid Build Coastguard Workerecho "one" > file1
42*cf5a6c84SAndroid Build Coastguard Workerecho "two" > file2
43*cf5a6c84SAndroid Build Coastguard Workertesting "cat" "cat && echo yes" "oneyes\n" "" "one"
44*cf5a6c84SAndroid Build Coastguard Workertesting "-" "cat - && echo yes" "oneyes\n" "" "one"
45*cf5a6c84SAndroid Build Coastguard Workertesting "file1 file2" "cat file1 file2" "one\ntwo\n"  "" ""
46*cf5a6c84SAndroid Build Coastguard Workertesting "- file"      "cat - file1"     "zero\none\n" "" "zero\n"
47*cf5a6c84SAndroid Build Coastguard Workertesting "file -"      "cat file1 -"     "one\nzero\n" "" "zero\n"
48*cf5a6c84SAndroid Build Coastguard Worker
49*cf5a6c84SAndroid Build Coastguard Workertesting "file1 notfound file2" \
50*cf5a6c84SAndroid Build Coastguard Worker        "cat file1 notfound file2 2>stderr && echo ok ; cat stderr; rm stderr" \
51*cf5a6c84SAndroid Build Coastguard Worker        "one\ntwo\ncat: notfound: No such file or directory\n" "" ""
52*cf5a6c84SAndroid Build Coastguard Worker
53*cf5a6c84SAndroid Build Coastguard Workertesting "binary" \
54*cf5a6c84SAndroid Build Coastguard Worker        'cat "$C" > file1 && cmp "$C" file1 && echo yes' "yes\n" "" ""
55*cf5a6c84SAndroid Build Coastguard Worker
56*cf5a6c84SAndroid Build Coastguard Workertesting "- file1" \
57*cf5a6c84SAndroid Build Coastguard Worker        "cat - file1 | diff -a -U 0 - file1 | tail -n 1" \
58*cf5a6c84SAndroid Build Coastguard Worker        "-hello\n" "" "hello\n"
59*cf5a6c84SAndroid Build Coastguard Worker
60*cf5a6c84SAndroid Build Coastguard Workerskipnot [ -e /dev/full ]
61*cf5a6c84SAndroid Build Coastguard Workertesting "> /dev/full" \
62*cf5a6c84SAndroid Build Coastguard Worker        "cat - > /dev/full 2>/dev/null || echo failed" \
63*cf5a6c84SAndroid Build Coastguard Worker        "failed\n" "" "zero\n"
64*cf5a6c84SAndroid Build Coastguard Worker
65*cf5a6c84SAndroid Build Coastguard Workerrm file1 file2
66