aboutsummaryrefslogtreecommitdiff
path: root/tests/builtin/cat.testscript
blob: 336bb033c443abd6bb648c9a60a457f886a33dd5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# file      : tests/builtin/cat.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license   : MIT; see accompanying LICENSE file

test.arguments = "cat"

: unknown-option
:
$* -u 2>"cat: unknown option '-u'" == 1

: in
:
$* <<EOF >>EOF
  foo
  bar
  EOF

: dash
:
$* - <<EOF >>EOF
  foo
  bar
  EOF

: file
:
{
  $* <<EOF >=out;
    foo
    bar
    EOF

  cat out >>EOO
    foo
    bar
    EOO
}

: in-repeat
:
$* - - <<EOF >>EOF
  foo
  bar
  EOF

: non-existent
:
$* in 2>>/~%EOE% != 0
  %cat: unable to print '.+/in': .+%
  EOE

: empty-path
:
: Cat an empty path.
:
$* '' 2>"cat: invalid path ''" == 1

: big
:
: Cat a big file (about 100K) to test that the builtin is asynchronous.
:
{
  s="--------------------------------";
  s="$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s";
  s="$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s";
  s="$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s";
  $* <"$s" | $* >"$s"
}

: cwd
:
: When cross-testing we cannot guarantee that host absolute paths are
: recognized by the target process.
:
if ($test.target == $build.host)
{
  test.options += -d $~/a;
  mkdir a;
  echo 'foo' >=a/b;

  $* b >'foo'
}