summaryrefslogtreecommitdiff
path: root/testing/gitano-test-tool.in
diff options
context:
space:
mode:
Diffstat (limited to 'testing/gitano-test-tool.in')
-rw-r--r--testing/gitano-test-tool.in34
1 files changed, 33 insertions, 1 deletions
diff --git a/testing/gitano-test-tool.in b/testing/gitano-test-tool.in
index f467918..1fd39b0 100644
--- a/testing/gitano-test-tool.in
+++ b/testing/gitano-test-tool.in
@@ -70,10 +70,28 @@ local function unix_assert(ret, errno)
end
end
+local function load_env(into)
+ local f, msg = loadfile(basedir .. ".gtt-env")
+ if f then
+ setfenv(f, into)
+ f()
+ end
+end
+
+local function save_env(env)
+ local f = io.open(basedir .. ".gtt-env", "w")
+ for k, v in pairs(env) do
+ f:write(("%s = %q\n"):format(k, v))
+ end
+ f:close()
+end
+
local function run_program(t)
- if t.env and os.getenv("GITANO_DUMP_VARIABLE_FILE") then
+ t.env = (t.env or {})
+ if os.getenv("GITANO_DUMP_VARIABLE_FILE") then
t.env["GITANO_DUMP_VARIABLE_FILE"] = os.getenv("GITANO_DUMP_VARIABLE_FILE")
end
+ load_env(t.env)
local f = io.open(basedir .. "last-program", "w")
local function print (...)
f:write(...)
@@ -180,6 +198,20 @@ function cmd_setgitconfig(username, key, value)
}
end
+function cmd_setenv(key, value)
+ local t = {}
+ load_env(t)
+ t[key] = value
+ save_env(t)
+end
+
+function cmd_unsetenv(key)
+ local t = {}
+ load_env(t)
+ t[key] = nil
+ save_env(t)
+end
+
function cmd_createunixuser(username)
assert(sio.mkdir(user_home(username), "0755"))
assert(sio.mkdir(ssh_base(username), "0755"))