Skip to content

Commit 5a9e6fd

Browse files
committed
mark env changes in tests as unsafe
satisfies newer lint rules
1 parent 5406eca commit 5a9e6fd

File tree

4 files changed

+97
-64
lines changed

4 files changed

+97
-64
lines changed

cpp-linter/src/run.rs

Lines changed: 37 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -162,57 +162,68 @@ mod test {
162162

163163
#[tokio::test]
164164
async fn normal() {
165-
env::remove_var("GITHUB_OUTPUT"); // avoid writing to GH_OUT in parallel-running tests
166-
let result = run_main(vec![
165+
unsafe {
166+
env::remove_var("GITHUB_OUTPUT"); // avoid writing to GH_OUT in parallel-running tests
167+
}
168+
run_main(vec![
167169
"cpp-linter".to_string(),
168170
"-l".to_string(),
169171
"false".to_string(),
170172
"--repo-root".to_string(),
171173
"tests".to_string(),
172174
"demo/demo.cpp".to_string(),
173175
])
174-
.await;
175-
assert!(result.is_ok());
176+
.await
177+
.unwrap();
176178
}
177179

178180
#[tokio::test]
179181
async fn version_command() {
180-
env::remove_var("GITHUB_OUTPUT"); // avoid writing to GH_OUT in parallel-running tests
181-
let result = run_main(vec!["cpp-linter".to_string(), "version".to_string()]).await;
182-
assert!(result.is_ok());
182+
unsafe {
183+
env::remove_var("GITHUB_OUTPUT"); // avoid writing to GH_OUT in parallel-running tests
184+
}
185+
run_main(vec!["cpp-linter".to_string(), "version".to_string()])
186+
.await
187+
.unwrap();
183188
}
184189

185190
#[tokio::test]
186191
async fn force_debug_output() {
187-
env::remove_var("GITHUB_OUTPUT"); // avoid writing to GH_OUT in parallel-running tests
188-
let result = run_main(vec![
192+
unsafe {
193+
env::remove_var("GITHUB_OUTPUT"); // avoid writing to GH_OUT in parallel-running tests
194+
}
195+
run_main(vec![
189196
"cpp-linter".to_string(),
190197
"-l".to_string(),
191198
"false".to_string(),
192199
"-v".to_string(),
193200
"-i=target|benches/libgit2".to_string(),
194201
])
195-
.await;
196-
assert!(result.is_ok());
202+
.await
203+
.unwrap();
197204
}
198205

199206
#[tokio::test]
200207
async fn no_version_input() {
201-
env::remove_var("GITHUB_OUTPUT"); // avoid writing to GH_OUT in parallel-running tests
202-
let result = run_main(vec![
208+
unsafe {
209+
env::remove_var("GITHUB_OUTPUT"); // avoid writing to GH_OUT in parallel-running tests
210+
}
211+
run_main(vec![
203212
"cpp-linter".to_string(),
204213
"-l".to_string(),
205214
"false".to_string(),
206215
"-V".to_string(),
207216
])
208-
.await;
209-
assert!(result.is_ok());
217+
.await
218+
.unwrap();
210219
}
211220

212221
#[tokio::test]
213222
async fn pre_commit_env() {
214-
env::remove_var("GITHUB_OUTPUT"); // avoid writing to GH_OUT in parallel-running tests
215-
env::set_var("PRE_COMMIT", "1");
223+
unsafe {
224+
env::remove_var("GITHUB_OUTPUT"); // avoid writing to GH_OUT in parallel-running tests
225+
env::set_var("PRE_COMMIT", "1");
226+
}
216227
let result = run_main(vec![
217228
"cpp-linter".to_string(),
218229
"--lines-changed-only".to_string(),
@@ -227,22 +238,26 @@ mod test {
227238
// This ensures no diagnostic comments are generated when analysis is explicitly skipped.
228239
#[tokio::test]
229240
async fn no_analysis() {
230-
env::remove_var("GITHUB_OUTPUT"); // avoid writing to GH_OUT in parallel-running tests
231-
let result = run_main(vec![
241+
unsafe {
242+
env::remove_var("GITHUB_OUTPUT"); // avoid writing to GH_OUT in parallel-running tests
243+
}
244+
run_main(vec![
232245
"cpp-linter".to_string(),
233246
"-l".to_string(),
234247
"false".to_string(),
235248
"--style".to_string(),
236249
String::new(),
237250
"--tidy-checks=-*".to_string(),
238251
])
239-
.await;
240-
assert!(result.is_ok());
252+
.await
253+
.unwrap();
241254
}
242255

243256
#[tokio::test]
244257
async fn bad_repo_root() {
245-
env::remove_var("GITHUB_OUTPUT"); // avoid writing to GH_OUT in parallel-running tests
258+
unsafe {
259+
env::remove_var("GITHUB_OUTPUT"); // avoid writing to GH_OUT in parallel-running tests
260+
}
246261
let result = run_main(vec![
247262
"cpp-linter".to_string(),
248263
"--repo-root".to_string(),

cpp-linter/tests/comments.rs

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -62,28 +62,34 @@ impl Default for TestParams {
6262
}
6363

6464
async fn setup(lib_root: &Path, test_params: &TestParams) {
65-
env::set_var(
66-
"GITHUB_EVENT_NAME",
67-
test_params.event_t.to_string().as_str(),
68-
);
69-
env::remove_var("GITHUB_OUTPUT"); // avoid writing to GH_OUT in parallel-running tests
70-
env::set_var("GITHUB_REPOSITORY", REPO);
71-
env::set_var("GITHUB_SHA", SHA);
72-
env::set_var("GITHUB_TOKEN", TOKEN);
73-
env::set_var("CI", "true");
65+
unsafe {
66+
env::set_var(
67+
"GITHUB_EVENT_NAME",
68+
test_params.event_t.to_string().as_str(),
69+
);
70+
env::remove_var("GITHUB_OUTPUT"); // avoid writing to GH_OUT in parallel-running tests
71+
env::set_var("GITHUB_REPOSITORY", REPO);
72+
env::set_var("GITHUB_SHA", SHA);
73+
env::set_var("GITHUB_TOKEN", TOKEN);
74+
env::set_var("CI", "true");
75+
}
7476
let mut event_payload_path = NamedTempFile::new_in("./").unwrap();
7577
if test_params.event_t == EventType::PullRequest {
7678
event_payload_path
7779
.write_all(EVENT_PAYLOAD.as_bytes())
7880
.expect("Failed to create mock event payload.");
79-
env::set_var("GITHUB_EVENT_PATH", event_payload_path.path());
81+
unsafe {
82+
env::set_var("GITHUB_EVENT_PATH", event_payload_path.path());
83+
}
8084
}
8185

8286
let reset_timestamp = (Utc::now().timestamp() + 60).to_string();
8387
let asset_path = format!("{}/{MOCK_ASSETS_PATH}", lib_root.to_str().unwrap());
8488

8589
let mut server = mock_server().await;
86-
env::set_var("GITHUB_API_URL", server.url());
90+
unsafe {
91+
env::set_var("GITHUB_API_URL", server.url());
92+
}
8793
let mut mocks = vec![];
8894

8995
if test_params.lines_changed_only != LinesChangedOnly::Off {

cpp-linter/tests/paginated_changed_files.rs

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -37,29 +37,33 @@ const REMAINING_RATE_LIMIT_HEADER: &str = "x-ratelimit-remaining";
3737
const MALFORMED_RESPONSE_PAYLOAD: &str = "{\"message\":\"Resource not accessible by integration\"}";
3838

3939
async fn get_paginated_changes(lib_root: &Path, test_params: &TestParams) {
40-
env::set_var("GITHUB_REPOSITORY", REPO);
41-
env::set_var("GITHUB_SHA", SHA);
42-
env::set_var("GITHUB_TOKEN", TOKEN);
43-
env::set_var("CI", "true");
44-
env::set_var(
45-
"GITHUB_EVENT_NAME",
46-
if test_params.event_t == EventType::Push {
47-
"push"
48-
} else {
49-
"pull_request"
50-
},
51-
);
40+
unsafe {
41+
env::set_var("GITHUB_REPOSITORY", REPO);
42+
env::set_var("GITHUB_SHA", SHA);
43+
env::set_var("GITHUB_TOKEN", TOKEN);
44+
env::set_var("CI", "true");
45+
env::set_var(
46+
"GITHUB_EVENT_NAME",
47+
if test_params.event_t == EventType::Push {
48+
"push"
49+
} else {
50+
"pull_request"
51+
},
52+
);
53+
}
5254
let tmp = TempDir::new().expect("Failed to create a temp dir for test");
5355
let mut event_payload = NamedTempFile::new_in(tmp.path())
5456
.expect("Failed to spawn a tmp file for test event payload");
55-
env::set_var(
56-
"GITHUB_EVENT_PATH",
57-
if test_params.no_event_payload {
58-
Path::new("no a file.txt")
59-
} else {
60-
event_payload.path()
61-
},
62-
);
57+
unsafe {
58+
env::set_var(
59+
"GITHUB_EVENT_PATH",
60+
if test_params.no_event_payload {
61+
Path::new("no a file.txt")
62+
} else {
63+
event_payload.path()
64+
},
65+
);
66+
}
6367
if EventType::PullRequest == test_params.event_t
6468
&& !test_params.fail_serde_event_payload
6569
&& !test_params.no_event_payload
@@ -73,7 +77,9 @@ async fn get_paginated_changes(lib_root: &Path, test_params: &TestParams) {
7377
let asset_path = format!("{}/tests/paginated_changes", lib_root.to_str().unwrap());
7478

7579
let mut server = mock_server().await;
76-
env::set_var("GITHUB_API_URL", server.url());
80+
unsafe {
81+
env::set_var("GITHUB_API_URL", server.url());
82+
}
7783
env::set_current_dir(tmp.path()).unwrap();
7884
logger::try_init();
7985
log::set_max_level(log::LevelFilter::Debug);

cpp-linter/tests/reviews.rs

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -72,26 +72,32 @@ fn generate_tool_summary(review_enabled: bool, force_lgtm: bool, tool_name: &str
7272
}
7373

7474
async fn setup(lib_root: &Path, test_params: &TestParams) {
75-
env::remove_var("GITHUB_OUTPUT"); // avoid writing to GH_OUT in parallel-running tests
76-
env::set_var("GITHUB_EVENT_NAME", "pull_request");
77-
env::set_var("GITHUB_REPOSITORY", REPO);
78-
env::set_var("GITHUB_SHA", SHA);
79-
env::set_var("GITHUB_TOKEN", TOKEN);
80-
env::set_var("CI", "true");
81-
if test_params.summary_only {
82-
env::set_var("CPP_LINTER_PR_REVIEW_SUMMARY_ONLY", "true");
75+
unsafe {
76+
env::remove_var("GITHUB_OUTPUT"); // avoid writing to GH_OUT in parallel-running tests
77+
env::set_var("GITHUB_EVENT_NAME", "pull_request");
78+
env::set_var("GITHUB_REPOSITORY", REPO);
79+
env::set_var("GITHUB_SHA", SHA);
80+
env::set_var("GITHUB_TOKEN", TOKEN);
81+
env::set_var("CI", "true");
82+
if test_params.summary_only {
83+
env::set_var("CPP_LINTER_PR_REVIEW_SUMMARY_ONLY", "true");
84+
}
8385
}
8486
let mut event_payload_path = NamedTempFile::new_in("./").unwrap();
8587
event_payload_path
8688
.write_all(EVENT_PAYLOAD.as_bytes())
8789
.expect("Failed to create mock event payload.");
88-
env::set_var("GITHUB_EVENT_PATH", event_payload_path.path());
90+
unsafe {
91+
env::set_var("GITHUB_EVENT_PATH", event_payload_path.path());
92+
}
8993
let clang_version = env::var("CLANG_VERSION").unwrap_or("".to_string());
9094
let reset_timestamp = (Utc::now().timestamp() + 60).to_string();
9195
let asset_path = format!("{}/{MOCK_ASSETS_PATH}", lib_root.to_str().unwrap());
9296

9397
let mut server = mock_server().await;
94-
env::set_var("GITHUB_API_URL", server.url());
98+
unsafe {
99+
env::set_var("GITHUB_API_URL", server.url());
100+
}
95101
let mut mocks = vec![];
96102

97103
let pr_endpoint = format!("/repos/{REPO}/pulls/{PR}");

0 commit comments

Comments
 (0)