diff --git a/src/modules/files/testsuite.in b/src/modules/files/testsuite.in
index b3aa004b0c09196e237828b576487ec896e701cf..60c266fe760956a50ca93387e10066321d4f3f5f 100644
--- a/src/modules/files/testsuite.in
+++ b/src/modules/files/testsuite.in
@@ -82,6 +82,29 @@ dnl test_eq(Process.popen("echo foo"),"foo\n")
 test_true(rm("conftest"))
 test_eq(file_stat("conftest"),0)
 
+test_any(object o=clone(Stdio.File); return o->open("conftest","wac") && o->write("x") && o->close(),1)
+test_eq(file_stat("conftest")[1],1)
+test_any(object o=clone(Stdio.File); return o->open("conftest","wa") && o->write("x") && o->close(),1)
+test_eq(file_stat("conftest")[1],2)
+test_any(object o=clone(Stdio.File); return o->open("conftest","wac") && o->write("x") && o->close(),1)
+test_eq(file_stat("conftest")[1],3)
+test_any(object o=clone(Stdio.File); return o->open("conftest","wa") && o->write("x") && o->close(),1)
+test_eq(file_stat("conftest")[1],4)
+test_any(object o=clone(Stdio.File); return o->open("conftest","wa") && o->write("x") && o->close(),1)
+test_eq(file_stat("conftest")[1],5)
+test_any(object o=clone(Stdio.File); return o->open("conftest","war") && o->write("x") && o->close(),1)
+test_eq(file_stat("conftest")[1],6)
+test_any(object o=clone(Stdio.File); return o->open("conftest","wrac") && o->write("x") && o->close(),1)
+test_eq(file_stat("conftest")[1],7)
+test_any(object o=clone(Stdio.File); return o->open("conftest","wac") && o->write("x") && o->close(),1)
+test_eq(file_stat("conftest")[1],8)
+test_any(object o=clone(Stdio.File); return o->open("conftest","wrac") && o->write("x") && o->close(),1)
+test_eq(file_stat("conftest")[1],9)
+test_any(object o=clone(Stdio.File); return o->open("conftest","wrac") && o->write("x") && o->close(),1)
+test_eq(file_stat("conftest")[1],10)
+test_true(rm("conftest"))
+test_eq(file_stat("conftest"),0)
+
 // - file_stat
 // - perror
 // - rm