commit fc172d952d479f42dec5761b2f53a909c1373686
parent 12cf0824dfc11f983a3725ac9a3cc4fcb435a6f1
Author: Asher Morgan <59518073+ashermorgan@users.noreply.github.com>
Date: Thu, 4 Jul 2024 14:24:49 -0700
Test working directory of executing scripts
Diffstat:
5 files changed, 24 insertions(+), 18 deletions(-)
diff --git a/examples/test/scripts/script.bat b/examples/test/scripts/script.bat
@@ -1,4 +1,3 @@
@ECHO OFF
ECHO script.bat called with %*
-REM Windows doesn't support ~/, but it will be edited by copy_manifest()
-ECHO script.bat called with %* > ~/log.txt
+ECHO script.bat called with %* > scripts/log.txt
diff --git a/examples/test/scripts/script.sh b/examples/test/scripts/script.sh
@@ -1,4 +1,4 @@
#!/usr/bin/env sh
echo "script.sh called with $@"
-echo "script.sh called with $@" > ~/log.txt
+echo "script.sh called with $@" > scripts/log.txt
diff --git a/tests/common/mod.rs b/tests/common/mod.rs
@@ -20,12 +20,16 @@ pub struct TempDirs {
/// A temporary directory that is mounted to the SSH server under $HOME
pub ssh: PathBuf,
+
+ /// A temporary directory that is mounted to the SSH server under ~/.coliru
+ pub ssh_cwd: PathBuf,
}
impl Drop for TempDirs {
fn drop(&mut self) {
- fs::remove_dir_all(&self.ssh).unwrap();
- fs::remove_dir_all(&self.local).unwrap();
fs::remove_dir_all(&self.home).unwrap();
+ fs::remove_dir_all(&self.local).unwrap();
+ fs::remove_dir_all(&self.ssh).unwrap();
+ fs::remove_dir_all(&self.ssh_cwd).unwrap();
}
}
impl TempDirs {
@@ -36,16 +40,19 @@ impl TempDirs {
let home = dir.join("home").join(name);
let local = dir.join("local").join(name);
let ssh = dir.join("ssh").join(name);
+ let ssh_cwd = dir.join("ssh").join(".coliru").join(name);
assert_eq!(home.exists(), false);
assert_eq!(local.exists(), false);
assert_eq!(ssh.exists(), false);
+ assert_eq!(ssh_cwd.exists(), false);
fs::create_dir_all(&home).unwrap();
fs::create_dir_all(&local).unwrap();
fs::create_dir_all(&ssh).unwrap();
+ fs::create_dir_all(&ssh_cwd).unwrap();
- TempDirs { home, local, ssh }
+ TempDirs { home, local, ssh, ssh_cwd }
}
}
diff --git a/tests/local.rs b/tests/local.rs
@@ -30,7 +30,7 @@ script.sh called with arg1 linux
let git_contents = read_file(&dirs.home.join(".gitconfig"));
let vim1_contents = read_file(&dirs.home.join(".vimrc"));
let vim2_exists = dirs.home.join("_vimrc").exists();
- let log_contents = read_file(&dirs.home.join("log.txt"));
+ let log_contents = read_file(&dirs.local.join("log.txt"));
assert_eq!(bash_contents, "bash #2\n");
assert_eq!(git_contents, "git #1\n");
assert_eq!(vim1_contents, "vim #2\n");
@@ -90,7 +90,7 @@ script.sh called with arg1 linux ^windows
let git_exists = dirs.home.join(".gitconfig").exists();
let vim1_contents = read_file(&dirs.home.join(".vimrc"));
let vim2_exists = dirs.home.join("_vimrc").exists();
- let log_contents = read_file(&dirs.home.join("log.txt"));
+ let log_contents = read_file(&dirs.local.join("log.txt"));
assert_eq!(bash_contents, "bash #2\n");
assert_eq!(git_exists, false);
assert_eq!(vim1_contents, "vim #2\n");
@@ -122,7 +122,7 @@ script.sh called with arg1 macos
let git_contents = read_file(&dirs.home.join(".gitconfig"));
let vim1_contents = read_file(&dirs.home.join(".vimrc"));
let vim2_exists = dirs.home.join("_vimrc").exists();
- let log_contents = read_file(&dirs.home.join("log.txt"));
+ let log_contents = read_file(&dirs.local.join("log.txt"));
assert_eq!(bash_contents, "bash #2\n");
assert_eq!(git_contents, "git #1\n");
assert_eq!(vim1_contents, "vim #2\n");
@@ -150,7 +150,7 @@ fn test_local_dry_run() {
let git_exists = dirs.home.join(".gitconfig").exists();
let vim1_exists = dirs.home.join(".vimrc").exists();
let vim2_exists = dirs.home.join("_vimrc").exists();
- let log_exists = dirs.home.join("log.txt").exists();
+ let log_exists = dirs.local.join("log.txt").exists();
assert_eq!(bash_exists, false);
assert_eq!(git_exists, false);
assert_eq!(vim1_exists, false);
@@ -209,7 +209,7 @@ script.sh called with arg1 linux
let git_contents = read_file(&dirs.home.join(".gitconfig"));
let vim1_contents = read_file(&dirs.home.join(".vimrc"));
let vim2_exists = dirs.home.join("_vimrc").exists();
- let log_contents = read_file(&dirs.home.join("log.txt"));
+ let log_contents = read_file(&dirs.local.join("log.txt"));
assert_eq!(bash_contents, "bash #1\n");
assert_eq!(git_contents, "git #1\n");
assert_eq!(vim1_contents, "vim #1\n");
@@ -330,7 +330,7 @@ script.sh called with arg1 linux
write_file(&dirs.local.join("gitconfig"), "git #2\n");
let bash_contents = read_file(&dirs.home.join(".bashrc"));
let git_contents = read_file(&dirs.home.join(".gitconfig"));
- let log_contents = read_file(&dirs.home.join("log.txt"));
+ let log_contents = read_file(&dirs.local.join("log.txt"));
assert_eq!(bash_contents, "bash #2\n");
assert_eq!(git_contents, "git #1\n");
assert_eq!(log_contents, "script.sh called with arg1 linux\n");
diff --git a/tests/ssh.rs b/tests/ssh.rs
@@ -27,7 +27,7 @@ script.sh called with arg1 linux
let git_contents = read_file(&dirs.ssh.join(".gitconfig"));
let vim1_contents = read_file(&dirs.ssh.join(".vimrc"));
let vim2_exists = dirs.ssh.join("_vimrc").exists();
- let log_contents = read_file(&dirs.ssh.join("log.txt"));
+ let log_contents = read_file(&dirs.ssh_cwd.join("log.txt"));
assert_eq!(bash_contents, "bash #1\n");
assert_eq!(git_contents, "git #1\n");
assert_eq!(vim1_contents, "vim #1\n");
@@ -55,7 +55,7 @@ script.sh called with arg1 linux ^windows
let git_exists = dirs.ssh.join(".gitconfig").exists();
let vim1_contents = read_file(&dirs.ssh.join(".vimrc"));
let vim2_exists = dirs.ssh.join("_vimrc").exists();
- let log_contents = read_file(&dirs.ssh.join("log.txt"));
+ let log_contents = read_file(&dirs.ssh_cwd.join("log.txt"));
assert_eq!(bash_contents, "bash #1\n");
assert_eq!(git_exists, false);
assert_eq!(vim1_contents, "vim #1\n");
@@ -84,7 +84,7 @@ script.sh called with arg1 macos
let git_contents = read_file(&dirs.ssh.join(".gitconfig"));
let vim1_contents = read_file(&dirs.ssh.join(".vimrc"));
let vim2_exists = dirs.ssh.join("_vimrc").exists();
- let log_contents = read_file(&dirs.ssh.join("log.txt"));
+ let log_contents = read_file(&dirs.ssh_cwd.join("log.txt"));
assert_eq!(bash_contents, "bash #1\n");
assert_eq!(git_contents, "git #1\n");
assert_eq!(vim1_contents, "vim #1\n");
@@ -111,7 +111,7 @@ fn test_ssh_dry_run() {
let git_exists = dirs.ssh.join(".gitconfig").exists();
let vim1_exists = dirs.ssh.join(".vimrc").exists();
let vim2_exists = dirs.ssh.join("_vimrc").exists();
- let log_exists = dirs.ssh.join("log.txt").exists();
+ let log_exists = dirs.ssh_cwd.join("log.txt").exists();
assert_eq!(bash_exists, false);
assert_eq!(git_exists, false);
assert_eq!(vim1_exists, false);
@@ -140,7 +140,7 @@ script.sh called with arg1 linux
let git_contents = read_file(&dirs.ssh.join(".gitconfig"));
let vim1_contents = read_file(&dirs.ssh.join(".vimrc"));
let vim2_exists = dirs.ssh.join("_vimrc").exists();
- let log_contents = read_file(&dirs.ssh.join("log.txt"));
+ let log_contents = read_file(&dirs.ssh_cwd.join("log.txt"));
assert_eq!(bash_contents, "bash #1\n");
assert_eq!(git_contents, "git #1\n");
assert_eq!(vim1_contents, "vim #1\n");
@@ -197,7 +197,7 @@ script.sh called with arg1 linux
// Assert files are correctly copied/run
let bash_contents = read_file(&dirs.ssh.join(".bashrc"));
let git_contents = read_file(&dirs.ssh.join(".gitconfig"));
- let log_contents = read_file(&dirs.ssh.join("log.txt"));
+ let log_contents = read_file(&dirs.ssh_cwd.join("log.txt"));
assert_eq!(bash_contents, "bash #1\n");
assert_eq!(git_contents, "git #1\n");
assert_eq!(log_contents, "script.sh called with arg1 linux\n");