(module main)

(fn fixture_path () -> string
  "slovo-exp3-host-io.txt")

(fn write_fixture () -> i32
  (std.fs.write_text (fixture_path) "host io"))

(fn read_fixture () -> string
  (std.fs.read_text (fixture_path)))

(fn missing_env () -> string
  (std.env.get "SLOVO_EXP3_MISSING"))

(fn arg_count_plus_one () -> i32
  (+ (std.process.argc) 1))

(test "missing env returns empty string"
  (= (missing_env) ""))

(test "argc is not negative"
  (< 0 (arg_count_plus_one)))

(test "write text returns success"
  (= (write_fixture) 0))

(test "read text returns written text"
  (= (read_fixture) "host io"))

(fn main () -> i32
  (std.io.eprint "exp-3 host io")
  (std.io.print_string (std.process.arg 0))
  (std.io.print_string (read_fixture))
  (std.fs.write_text (fixture_path) "host io"))
