()
| 15 | |
| 16 | #[test] |
| 17 | fn test_basic_derivation_diff() { |
| 18 | let tests_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("tests"); |
| 19 | let (_nix_root, env_vars) = setup_nix_env(); |
| 20 | |
| 21 | // Generate derivations |
| 22 | let mut cmd1 = Command::new("nix-instantiate"); |
| 23 | cmd1.arg(tests_dir.join("hello-flake-v1/default.nix")); |
| 24 | for (key, value) in &env_vars { |
| 25 | cmd1.env(key, value); |
| 26 | } |
| 27 | let output1 = cmd1 |
| 28 | .output() |
| 29 | .expect("Failed to instantiate hello-flake-v1/default.nix"); |
| 30 | |
| 31 | let mut cmd2 = Command::new("nix-instantiate"); |
| 32 | cmd2.arg(tests_dir.join("hello-flake-v2/default.nix")); |
| 33 | for (key, value) in &env_vars { |
| 34 | cmd2.env(key, value); |
| 35 | } |
| 36 | let output2 = cmd2 |
| 37 | .output() |
| 38 | .expect("Failed to instantiate hello-flake-v2/default.nix"); |
| 39 | |
| 40 | let drv1 = String::from_utf8_lossy(&output1.stdout).trim().to_string(); |
| 41 | let drv2 = String::from_utf8_lossy(&output2.stdout).trim().to_string(); |
| 42 | |
| 43 | // Run nix-diff |
| 44 | let mut cmd = Command::new(env!("CARGO_BIN_EXE_nix-diff")); |
| 45 | cmd.args([&drv1, &drv2]).env("NO_COLOR", "1"); |
| 46 | for (key, value) in &env_vars { |
| 47 | cmd.env(key, value); |
| 48 | } |
| 49 | let output = cmd.output().expect("Failed to run nix-diff"); |
| 50 | |
| 51 | let stdout = String::from_utf8_lossy(&output.stdout); |
| 52 | assert_diff_output(&stdout); |
| 53 | } |
| 54 | |
| 55 | #[test] |
| 56 | fn test_nix_file_diff() { |
nothing calls this directly
no test coverage detected