1 #include <stic.h>
2
3 #include <stdlib.h> /* free() */
4
5 #include "../../src/engine/parsing.h"
6
7 #include "asserts.h"
8
9 static const char * getenv_value(const char name[]);
10
SETUP()11 SETUP()
12 {
13 init_parser(&getenv_value);
14 }
15
16 static const char *
getenv_value(const char * name)17 getenv_value(const char *name)
18 {
19 return name + 1;
20 }
21
TEST(simple_ok)22 TEST(simple_ok)
23 {
24 ASSERT_OK("$ENV", "NV");
25 }
26
TEST(leading_spaces_ok)27 TEST(leading_spaces_ok)
28 {
29 ASSERT_OK(" $ENV", "NV");
30 }
31
TEST(trailing_spaces_ok)32 TEST(trailing_spaces_ok)
33 {
34 ASSERT_OK("$ENV ", "NV");
35 }
36
TEST(space_in_the_middle_fail)37 TEST(space_in_the_middle_fail)
38 {
39 ASSERT_FAIL("$ENV $VAR", PE_INVALID_EXPRESSION);
40 }
41
TEST(concatenation)42 TEST(concatenation)
43 {
44 ASSERT_OK("$ENV.$VAR", "NVAR");
45 ASSERT_OK("$ENV .$VAR", "NVAR");
46 ASSERT_OK("$ENV. $VAR", "NVAR");
47 ASSERT_OK("$ENV . $VAR", "NVAR");
48 }
49
TEST(non_first_digit_in_name_ok)50 TEST(non_first_digit_in_name_ok)
51 {
52 ASSERT_OK("$VAR_NUMBER_1", "AR_NUMBER_1");
53 }
54
TEST(first_digit_in_name_fail)55 TEST(first_digit_in_name_fail)
56 {
57 ASSERT_FAIL("$1_VAR", PE_INVALID_EXPRESSION);
58 }
59
TEST(invalid_first_char_in_name_fail)60 TEST(invalid_first_char_in_name_fail)
61 {
62 ASSERT_FAIL("$#", PE_INVALID_EXPRESSION);
63 }
64
65 /* vim: set tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab cinoptions-=(0 : */
66 /* vim: set cinoptions+=t0 filetype=c : */
67