File: testdir2.gsl

package info (click to toggle)
generator-scripting-language 4.1.5-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 10,424 kB
  • sloc: ansic: 106,060; cpp: 2,232; pascal: 762; sh: 535; xml: 424; makefile: 194
file content (79 lines) | stat: -rw-r--r-- 1,817 bytes parent folder | download | duplicates (3)
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
.template 0

diag.console_set_mode(0)

function runshell(testname, element, basedir)
    if count($(my.element)) = 0
       return
    endif
    sh = "$(my.basedir).sh"
    output sh
    ># test: $(my.testname) - $(my.element)
    for $(my.element) as elt
    >$(elt.:left)
    endfor
    close
    p = proc.new("sh $(sh)")
    p.setenv("BASE", my.basedir)
    p.run(err)
    file.delete(sh)
    if err ?
      echo "shell error: $(my.testname) : $(err)"
    endif
endfunction

function is (actual, expect)

 if my.actual <> my.expect
    echo "test $(name) failed: expected: $(my.expect), got: $(my.actual)"
   global.fail_count += 1
 else
    global.pass_count += 1
 endif
endfunction

global.fail_count = 0
global.pass_count = 0

for test

    echo "Running test: $(.name)"

    basedir = "/tmp/gsl-testdir-$(math.ceil(1000 + math.rand() * 1000))"
    
    if defined(->setup.message)
       echo "Setting up test [$(.name)] - $(->setup.message)"
    endif

    runshell(.name, "setup", basedir)

    for case
       .name = "[$(test.name)][$(index())]"

       dir = directory.open(basedir, err) ?

       if defined(dir)
           if when ?= "open"
             is("success", expect)
           elsif when ?= "count"
             is(count(dir.$(filter)), expect)
           else
               echo "unhandled test outcome: [$(name)] missing when attrib"
           endif
       else
           if when = "open"
              is("error", expect)
           else
             echo "unhandled test outcome: [$(name)] open failed on $(basedir): $(err). Missing when attrib"
           endif
       endif
    endfor

    runshell(.name, "cleanup", basedir)
endfor

echo "$(global.pass_count + global.fail_count %3d) tests"
echo "$(global.pass_count %3d) passed"
echo "$(global.fail_count %3d) failed"

.endtemplate