ref: d18c7f36b75feda3a11e54b00be8b131ea5caea2
dir: /lib/inifile/test/inifile.myr/
use std
use inifile
const main = {
failopen()
getkeys()
}
const failopen = {
match inifile.load("figment-of-my-imagination.ini")
| `std.Ok _: std.die("found imaginary file\n")
| `std.Fail _: /* as expected */
;;
}
const getkeys = {
var ini
ini = std.try(inifile.load("test/test.ini"))
checkval(ini, "", "toplev", "stuff")
checkval(ini, "somesect", "key", "foo")
checkval(ini, "somesect", "otherkey", "meh")
checkval(ini, "somesect", "whatever", "\"stuff here\"")
checkval(ini, "another section", "key", "foo1")
checkval(ini, "another section", "otherkey", "meh1")
checkval(ini, "another section", "whatever", "\"more stuff here\"")
inifile.put(ini, "new sect", "key", "val")
/* TODO: check this for validity */
std.assert(inifile.write(ini, "test/out.ini"), "failed to write test ini")
inifile.free(ini)
}
const checkval = {ini, sect, key, expected
match inifile.get(ini, sect, key)
| `std.Some val:
if !std.sleq(val, expected)
std.fatal("{}.{}: expected {}, got {}\n", sect, key, expected, val)
;;
| `std.None:
std.fatal("{}.{}: missing key\n", sect, key)
;;
}