aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/build/script/parser+depdb.test.testscript
blob: 38c423661dc5de9e72807292fcb68f7bcd2a9a6e (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
83
84
85
86
87
88
89
90
# file      : libbuild2/build/script/parser+depdb.test.testscript
# license   : MIT; see accompanying LICENSE file

test.options += -d

: clear
:
{
  : multiple
  :
  $* <<EOI 2>>EOE != 0
    depdb clear
    depdb clear
    EOI
    buildfile:12:1: error: multiple 'depdb clear' builtin calls
      buildfile:11:1: info: previous call is here
    EOE

  : after-string
  :
  $* <<EOI 2>>EOE != 0
    a = b
    depdb string "$a"
    depdb clear
    EOI
    buildfile:13:1: error: 'depdb clear' should be the first 'depdb' builtin call
      buildfile:12:1: info: first 'depdb' call is here
    EOE
}

: preamble
:
{
  : no-body
  :
  $* <<EOI >>EOO
    s = 'foo'
    if echo "$s" | sed 's/o/a/p' >>>? 'bar'
      f = 'baz'
    else
      f = 'fox'
    end
    depdb clear
    depdb string "$s"
    depdb hash "$f"
    foo "$s" "$f"
    EOI
    s = 'foo'
    if echo "$s" | sed 's/o/a/p' >>>? 'bar'
      f = 'baz'
    else
      f = 'fox'
    end
    depdb string "$s"
    depdb hash "$f"
    EOO

  : temp_dir
  :
  {
    test.options += -t

    : no
    :
    $* <<EOI >false
      f = foo
      depdb hash "$f"
      f = $~/f
      foo "$f"
      EOI

    : yes
    :
    $* <<EOI >true
      f = $~/f
      depdb hash "$f"
      foo "$f"
      EOI

    : yes-mult
    :
    $* <<EOI >true
      f = $~/f
      depdb hash "$f"
      s = "abc"
      depdb string "$s"
      foo "$f"
      EOI
  }
}