proc main()
{
    var badUtf = new PackUbyte(10);
    badUtf[0] = 'B';
    badUtf[1] = 'a';
    badUtf[2] = 'd';
    badUtf[3] = ' ';
    badUtf[4] = 0x92; // Illegal UTF-8 char
    badUtf[5] = ' ';
    badUtf[6] = 'U';
    badUtf[7] = 'T';
    badUtf[8] = 'F';
    badUtf[9] = '\n';

    var f = new File("badutf8a.txt", "wb");
    f.write(badUtf);
    f.close();

    // "r+" so we can delete it when we are don
    f = new File("badutf8a.txt", "r+");
    try {
        var s = f.readstr();
        "", s, '\n';
    }
    catch (e) {
        if (e == oadl::UTF8Check) {
            "Caught UTF8Check as expected\n";
            f.close("delete");
            oadl::halt();
        }
    }
    "Failed to catch UTF8check\n";
}