@@ -24,6 +24,7 @@ class TestProcessInfo : XCTestCase {
24
24
( " test_operatingSystemVersion " , test_operatingSystemVersion ) ,
25
25
( " test_processName " , test_processName ) ,
26
26
( " test_globallyUniqueString " , test_globallyUniqueString ) ,
27
+ ( " test_environment " , test_environment) ,
27
28
]
28
29
}
29
30
@@ -66,5 +67,41 @@ class TestProcessInfo : XCTestCase {
66
67
XCTAssertEqual ( parts [ 3 ] . utf16. count, 4 )
67
68
XCTAssertEqual ( parts [ 4 ] . utf16. count, 12 )
68
69
}
69
-
70
+
71
+ func test_environment( ) {
72
+ let preset = ProcessInfo . processInfo. environment [ " test " ]
73
+ setenv ( " test " , " worked " , 1 )
74
+ let postset = ProcessInfo . processInfo. environment [ " test " ]
75
+ XCTAssertNil ( preset)
76
+ XCTAssertEqual ( postset, " worked " )
77
+
78
+ // Bad values that wont be stored
79
+ XCTAssertEqual ( setenv ( " " , " " , 1 ) , - 1 )
80
+ XCTAssertEqual ( setenv ( " bad1= " , " " , 1 ) , - 1 )
81
+ XCTAssertEqual ( setenv ( " bad2= " , " 1 " , 1 ) , - 1 )
82
+ XCTAssertEqual ( setenv ( " bad3= " , " =2 " , 1 ) , - 1 )
83
+
84
+ // Good values that will be, check splitting on '='
85
+ XCTAssertEqual ( setenv ( " var1 " , " " , 1 ) , 0 )
86
+ XCTAssertEqual ( setenv ( " var2 " , " = " , 1 ) , 0 )
87
+ XCTAssertEqual ( setenv ( " var3 " , " =x " , 1 ) , 0 )
88
+ XCTAssertEqual ( setenv ( " var4 " , " x= " , 1 ) , 0 )
89
+ XCTAssertEqual ( setenv ( " var5 " , " =x= " , 1 ) , 0 )
90
+
91
+ let env = ProcessInfo . processInfo. environment
92
+
93
+ XCTAssertNil ( env [ " " ] )
94
+ XCTAssertNil ( env [ " bad1 " ] )
95
+ XCTAssertNil ( env [ " bad1= " ] )
96
+ XCTAssertNil ( env [ " bad2 " ] )
97
+ XCTAssertNil ( env [ " bad2= " ] )
98
+ XCTAssertNil ( env [ " bad3 " ] )
99
+ XCTAssertNil ( env [ " bad3= " ] )
100
+
101
+ XCTAssertEqual ( env [ " var1 " ] , " " )
102
+ XCTAssertEqual ( env [ " var2 " ] , " = " )
103
+ XCTAssertEqual ( env [ " var3 " ] , " =x " )
104
+ XCTAssertEqual ( env [ " var4 " ] , " x= " )
105
+ XCTAssertEqual ( env [ " var5 " ] , " =x= " )
106
+ }
70
107
}
0 commit comments