@@ -159,10 +159,19 @@ pub async fn run_main(args: Vec<String>) -> Result<()> {
159
159
mod test {
160
160
use super :: run_main;
161
161
use std:: env;
162
+ use tempfile:: NamedTempFile ;
163
+
164
+ /// Avoid writing to GITHUB_OUTPUT in parallel-running tests.
165
+ ///
166
+ /// This simply creates a temp file and sets the env var, GITHUB_OUTPUT, to the temp file's path.
167
+ fn monkey_patch_gh_output ( ) {
168
+ let fake_gh_out = NamedTempFile :: new ( ) . unwrap ( ) ;
169
+ env:: set_var ( "GITHUB_OUTPUT" , fake_gh_out. path ( ) ) ;
170
+ }
162
171
163
172
#[ tokio:: test]
164
173
async fn normal ( ) {
165
- env :: remove_var ( "GITHUB_OUTPUT" ) ; // avoid writing to GH_OUT in parallel-running tests
174
+ monkey_patch_gh_output ( ) ;
166
175
let result = run_main ( vec ! [
167
176
"cpp-linter" . to_string( ) ,
168
177
"-l" . to_string( ) ,
@@ -177,14 +186,14 @@ mod test {
177
186
178
187
#[ tokio:: test]
179
188
async fn version_command ( ) {
180
- env :: remove_var ( "GITHUB_OUTPUT" ) ; // avoid writing to GH_OUT in parallel-running tests
189
+ monkey_patch_gh_output ( ) ;
181
190
let result = run_main ( vec ! [ "cpp-linter" . to_string( ) , "version" . to_string( ) ] ) . await ;
182
191
assert ! ( result. is_ok( ) ) ;
183
192
}
184
193
185
194
#[ tokio:: test]
186
195
async fn force_debug_output ( ) {
187
- env :: remove_var ( "GITHUB_OUTPUT" ) ; // avoid writing to GH_OUT in parallel-running tests
196
+ monkey_patch_gh_output ( ) ;
188
197
let result = run_main ( vec ! [
189
198
"cpp-linter" . to_string( ) ,
190
199
"-l" . to_string( ) ,
@@ -199,7 +208,7 @@ mod test {
199
208
200
209
#[ tokio:: test]
201
210
async fn bad_version_input ( ) {
202
- env :: remove_var ( "GITHUB_OUTPUT" ) ; // avoid writing to GH_OUT in parallel-running tests
211
+ monkey_patch_gh_output ( ) ;
203
212
let result = run_main ( vec ! [
204
213
"cpp-linter" . to_string( ) ,
205
214
"-l" . to_string( ) ,
@@ -212,7 +221,7 @@ mod test {
212
221
213
222
#[ tokio:: test]
214
223
async fn pre_commit_env ( ) {
215
- env :: remove_var ( "GITHUB_OUTPUT" ) ; // avoid writing to GH_OUT in parallel-running tests
224
+ monkey_patch_gh_output ( ) ;
216
225
env:: set_var ( "PRE_COMMIT" , "1" ) ;
217
226
let result = run_main ( vec ! [
218
227
"cpp-linter" . to_string( ) ,
@@ -228,7 +237,7 @@ mod test {
228
237
// This ensures no diagnostic comments are generated when analysis is explicitly skipped.
229
238
#[ tokio:: test]
230
239
async fn no_analysis ( ) {
231
- env :: remove_var ( "GITHUB_OUTPUT" ) ; // avoid writing to GH_OUT in parallel-running tests
240
+ monkey_patch_gh_output ( ) ;
232
241
let result = run_main ( vec ! [
233
242
"cpp-linter" . to_string( ) ,
234
243
"-l" . to_string( ) ,
0 commit comments