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