Skip to content

Commit 245410a

Browse files
committed
Fix test_lint.global_variables_are_usable not testing anything
If 'eval' is used, the linter disables its error_assignment_to_undeclared_variable and error_use_of_undeclared_variable diagnostics. This means that test_lint.global_variables_are_usable and test_lint.nodejs_global_variables_are_usable ends up testing nothing because 'eval' us used (thus all interesting errors are suppressed). Fix the test to check each variable separately, avoiding 'eval' contamination.
1 parent fae7edd commit 245410a

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

test/test-lint.cpp

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -96,21 +96,27 @@ constexpr const char8 *non_writable_global_variables[] = {
9696
};
9797

9898
TEST(test_lint, global_variables_are_usable) {
99-
error_collector v;
100-
linter l(&v, &default_globals);
10199
// Array = null;
102100
// Array;
103101
for (const char8 *global_variable : writable_global_variables) {
102+
SCOPED_TRACE(out_string8(global_variable));
103+
error_collector v;
104+
linter l(&v, &default_globals);
104105
l.visit_variable_assignment(identifier_of(global_variable));
105106
l.visit_variable_use(identifier_of(global_variable));
107+
l.visit_end_of_module();
108+
EXPECT_THAT(v.errors, IsEmpty());
106109
}
110+
107111
// NaN;
108112
for (const char8 *global_variable : non_writable_global_variables) {
113+
SCOPED_TRACE(out_string8(global_variable));
114+
error_collector v;
115+
linter l(&v, &default_globals);
109116
l.visit_variable_use(identifier_of(global_variable));
117+
l.visit_end_of_module();
118+
EXPECT_THAT(v.errors, IsEmpty());
110119
}
111-
l.visit_end_of_module();
112-
113-
EXPECT_THAT(v.errors, IsEmpty());
114120
}
115121

116122
TEST(test_lint, immutable_global_variables_are_not_assignable) {
@@ -229,14 +235,14 @@ constexpr const char8 *nodejs_global_variables[] = {
229235
}
230236

231237
TEST(test_lint, nodejs_global_variables_are_usable) {
232-
error_collector v;
233-
linter l(&v, &default_globals);
234238
for (const char8 *global_variable : nodejs_global_variables) {
239+
SCOPED_TRACE(out_string8(global_variable));
240+
error_collector v;
241+
linter l(&v, &default_globals);
235242
l.visit_variable_use(identifier_of(global_variable));
243+
l.visit_end_of_module();
244+
EXPECT_THAT(v.errors, IsEmpty());
236245
}
237-
l.visit_end_of_module();
238-
239-
EXPECT_THAT(v.errors, IsEmpty());
240246
}
241247

242248
TEST(test_lint, non_module_nodejs_global_variables_are_shadowable) {

0 commit comments

Comments
 (0)