()
| 254 | |
| 255 | #[test] |
| 256 | fn test_run_wrapper_script() { |
| 257 | temp_env::with_var("TEST_ENV_VAR", "test_value".into(), || { |
| 258 | assert_eq!(safe_run("echo $TEST_ENV_VAR"), (0, 0)); |
| 259 | }); |
| 260 | |
| 261 | assert_eq!(safe_run("ls"), (0, 0)); |
| 262 | assert_eq!(safe_run("exit 0"), (0, 0)); |
| 263 | assert_eq!(safe_run("exit 1"), (0, 1)); |
| 264 | assert_eq!(safe_run("exit 255"), (0, 255)); |
| 265 | |
| 266 | assert_eq!(safe_run("ls; exit 1"), (0, 1)); |
| 267 | assert_eq!(safe_run("exit 1; ls"), (0, 1)); |
| 268 | |
| 269 | assert_eq!(safe_run("test 1 = 1 && exit 42"), (0, 42)); |
| 270 | assert_eq!(safe_run("test 1 = 2 && exit 42"), (0, 1)); |
| 271 | assert_eq!(safe_run("test 1 = 1 || exit 42"), (0, 0)); |
| 272 | assert_eq!(safe_run("test 1 = 2 || exit 42"), (0, 42)); |
| 273 | |
| 274 | const MULTILINE_ECHO_SCRIPT: &str = "echo \"Working\" |
| 275 | echo \"with\" |
| 276 | echo \"multiple lines\""; |
| 277 | |
| 278 | const MULTILINE_ECHO_WITH_SEMICOLONS: &str = "echo \"Working\"; |
| 279 | echo \"with\"; |
| 280 | echo \"multiple lines\";"; |
| 281 | |
| 282 | const ENV_VAR_VALIDATION_SCRIPT: &str = "export MY_ENV_VAR=\"Hello\" |
| 283 | output=$(echo \"$MY_ENV_VAR\") |
| 284 | if [ \"$output\" != \"Hello\" ]; then |
| 285 | echo \"Assertion failed: Expected 'Hello' but got '$output'\" |
| 286 | exit 1 |
| 287 | fi"; |
| 288 | |
| 289 | const ENV_VAR_VALIDATION_FAIL_SCRIPT: &str = "MY_ENV_VAR=\"Wrong\" |
| 290 | output=$(echo \"$MY_ENV_VAR\") |
| 291 | if [ \"$output\" != \"Hello\" ]; then |
| 292 | echo \"Assertion failed: Expected 'Hello' but got '$output'\" |
| 293 | exit 1 |
| 294 | fi"; |
| 295 | |
| 296 | const DIRECTORY_CHECK_SCRIPT: &str = "cd /tmp |
| 297 | # Check that the directory is actually changed |
| 298 | if [ $(basename $(pwd)) != \"tmp\" ]; then |
| 299 | exit 1 |
| 300 | fi"; |
| 301 | assert_eq!(safe_run(MULTILINE_ECHO_SCRIPT), (0, 0)); |
| 302 | assert_eq!(safe_run(MULTILINE_ECHO_WITH_SEMICOLONS), (0, 0)); |
| 303 | assert_eq!(safe_run(DIRECTORY_CHECK_SCRIPT), (0, 0)); |
| 304 | assert_eq!(safe_run(ENV_VAR_VALIDATION_SCRIPT), (0, 0)); |
| 305 | assert_eq!(safe_run(ENV_VAR_VALIDATION_FAIL_SCRIPT), (0, 1)); |
| 306 | } |
| 307 | } |
nothing calls this directly
no outgoing calls
no test coverage detected