summaryrefslogtreecommitdiff
path: root/tests/ovsdb-macros.at
blob: 0f8e4bd20b35d573f7a387b71f0112871b94a4e5 (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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
dnl OVSDB_INIT([$1])
dnl
dnl Creates an empty database named $1.
m4_define([OVSDB_INIT],
  [AT_CHECK(
     [ovsdb-tool create $1 $abs_top_srcdir/vswitchd/vswitch.ovsschema],
     [0], [stdout], [ignore])
   AT_CHECK(
     [[ovsdb-tool transact $1 \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]']],
     [0], [ignore], [ignore])])

# OVSDB_CHECK_POSITIVE(TITLE, TEST-OVSDB-ARGS, OUTPUT, [KEYWORDS], [PREREQ])
#
# Runs "test-ovsdb TEST-OVSDB-ARGS" and checks that it exits with
# status 0 and prints OUTPUT on stdout.
#
# TITLE is provided to AT_SETUP and KEYWORDS to AT_KEYWORDS.
m4_define([OVSDB_CHECK_POSITIVE],
  [AT_SETUP([$1])
   AT_KEYWORDS([ovsdb positive $4])
   AT_CHECK([test-ovsdb $2], [0], [$3
], [])
   AT_CLEANUP])

# OVSDB_CHECK_POSITIVE_PY(TITLE, TEST-OVSDB-ARGS, OUTPUT, [KEYWORDS], [PREREQ],
#                          [PY-CHECK])
#
# Runs "test-ovsdb.py TEST-OVSDB-ARGS" and checks that it exits with
# status 0 and prints OUTPUT on stdout.
#
# PY-CHECK is expanded before the check.  It can check for features of the
# Python implementation that are required for the test to pass.
#
# TITLE is provided to AT_SETUP and KEYWORDS to AT_KEYWORDS.
m4_define([OVSDB_CHECK_POSITIVE_PY],
  [AT_SETUP([$1])
   $6
   AT_KEYWORDS([ovsdb positive Python $4])
   AT_CHECK([$PYTHON3 $srcdir/test-ovsdb.py $2], [0], [$3
], [])
   AT_CLEANUP])

# OVSDB_CHECK_POSITIVE_CPY(TITLE, TEST-OVSDB-ARGS, OUTPUT, [KEYWORDS],
#                          [PREREQ], [PY3-CHECK])
#
# Runs identical C and Python tests, as specified.
m4_define([OVSDB_CHECK_POSITIVE_CPY],
  [OVSDB_CHECK_POSITIVE([$1 - C], [$2], [$3], [$4], [$5])
   OVSDB_CHECK_POSITIVE_PY([$1 - Python3], [$2], [$3], [$4], [$5], [$7])])

# OVSDB_CHECK_NEGATIVE(TITLE, TEST-OVSDB-ARGS, OUTPUT, [KEYWORDS], [PREREQ])
#
# Runs "test-ovsdb TEST-OVSDB-ARGS" and checks that it exits with
# status 1 and that its output on stdout contains substring OUTPUT.
# TITLE is provided to AT_SETUP and KEYWORDS to AT_KEYWORDS.
m4_define([OVSDB_CHECK_NEGATIVE],
  [AT_SETUP([$1])
   AT_KEYWORDS([ovsdb negative $4])
   AT_CHECK([test-ovsdb $2], [1], [], [stderr])
   m4_assert(m4_len([$3]))
   AT_CHECK(
     [if grep -F -e "AS_ESCAPE([$3])" stderr
      then
        :
      else
        exit 99
      fi],
            [0], [ignore], [ignore])
   AT_CLEANUP])

# OVSDB_CHECK_NEGATIVE_PY(TITLE, TEST-OVSDB-ARGS, OUTPUT, [KEYWORDS], [PREREQ])
#
# Runs "test-ovsdb TEST-OVSDB-ARGS" and checks that it exits with
# status 1 and that its output on stdout contains substring OUTPUT.
# TITLE is provided to AT_SETUP and KEYWORDS to AT_KEYWORDS.
m4_define([OVSDB_CHECK_NEGATIVE_PY],
  [AT_SETUP([$1])
   AT_KEYWORDS([ovsdb negative $4])
   AT_CHECK([$PYTHON3 $srcdir/test-ovsdb.py $2], [1], [], [stderr])
   m4_assert(m4_len([$3]))
   AT_CHECK(
     [if grep -F -e "AS_ESCAPE([$3])" stderr
      then
        :
      else
        exit 99
      fi],
            [0], [ignore], [ignore])
   AT_CLEANUP])

# OVSDB_CHECK_NEGATIVE_CPY(TITLE, TEST-OVSDB-ARGS, OUTPUT, [KEYWORDS],
#                          [PREREQ])
#
# Runs identical C and Python tests, as specified.
m4_define([OVSDB_CHECK_NEGATIVE_CPY],
  [OVSDB_CHECK_NEGATIVE([$1 - C], [$2], [$3], [$4], [$5])
   OVSDB_CHECK_NEGATIVE_PY([$1 - Python3], [$2], [$3], [$4], [$5])])

OVS_START_SHELL_HELPERS
ovsdb_client_wait() {
    ovsdb-client -vconsole:warn -vreconnect:err -vjsonrpc:err -vtimeval:off -vfile -vsyslog:off -vvlog:off wait "$@"
}
OVS_END_SHELL_HELPERS