commit - 02fc4f5177135ba8a95b49b15bdc23d4480a9f61
commit + c4940a901baabebaf4c171089a7e66fbfe197b8a
blob - 4df7427c5e3c0df79d7fb71e690a7aa2f7b5a0ca
blob + 6063b75eeec9eb313d715b82a8cf28792d58816d
--- regress/lib.9ps
+++ regress/lib.9ps
-# constants
+include "consts.9ps"
-const notag = -1:u16
-const msize = 4194304:u32 # 4*1024*1024
-const np2000 = "9P2000"
-
-
-
# 9p protocol
proc version(msize, version) {
}
proc walk(fid, newfid, ...) {
- send(Twalk, iota(), fid:u32, newfid:u32, ...:str)
+ send(Twalk, iota(), fid:u32, newfid:u32, ...)
}
m = recv()
assert (
- m.type == Tversion
+ m.type == Rversion
m.tag == notag
m.msize == msize
m.version == version
)
}
-proc should-fail() {
+proc expect-error() {
m = recv()
assert m.type == Rerror
debug("got expected error", m)
blob - /dev/null
blob + 02c0f1056e32015f8c1c76e21286a2684cc3d2dd (mode 644)
--- /dev/null
+++ regress/consts.9ps
+const (
+ np2000 = "9P2000"
+ msize = 4194304:u32 # 4*1024*1024
+ notag = -1:u16
+ nofid = -1:u32
+
+ QTDIR = 0x80
+ # ...
+ QTFILE = 0x0
+
+ Tversion = 100:u8
+ Rversion = 101:u8
+ Tauth = 102:u8
+ Rauth = 103:u8
+ Tattach = 104:u8
+ Rattach = 105:u8
+ Terror = 106:u8 # illegal
+ Rerror = 107:u8
+ Tflush = 108:u8
+ Rflush = 109:u8
+ Twalk = 110:u8
+ Rwalk = 111:u8
+ Topen = 112:u8
+ Ropen = 113:u8
+ Tcreate = 114:u8
+ Rcreate = 115:u8
+ Tread = 116:u8
+ Rread = 117:u8
+ Twrite = 118:u8
+ Rwrite = 119:u8
+ Tclunk = 120:u8
+ Rclunk = 121:u8
+ Tremove = 122:u8
+ Rremove = 123:u8
+ Tstat = 124:u8
+ Rstat = 125:u8
+ Twstat = 126:u8
+ Rwstat = 127:u8
+)
blob - 55f350600c185c6570a39049b569f214bf21baa0 (mode 644)
blob + /dev/null
--- regress/super-simple.9ps
+++ /dev/null
-const (
- version = "9P2000"
- msize = 4194304:u32
- notag = -1:u16
-
- Tversion = 100:u8
- Rversion = 101:u8
-)
-
-testing "if version works" dir "./root" {
- send(Tversion, notag, msize, version)
- m = recv()
- assert m.type == Rversion
- # print("the response is", m)
-}
-
-testing "fails when sending a R-message" dir "./root" should-fail {
- send(Rversion, notag, msize, version)
- # the client should close the connection
- recv()
-}
-
-testing "fails when sending a R-message (second try)" dir "./root" {
- send(Rversion, notag, msize, version)
- should-fail recv() : "the client should have closed the connection"
-}
blob - 3fd99676b0c179ef7cde6e3ffe3ddcb79e79b845
blob + 9f275e57f40e47cba532eb8ec571300063fb4000
--- regress/t.9ps
+++ regress/t.9ps
include "lib.9ps"
-testing "walk with invalid fid" dir "./root" {
- mount(0, "/")
- walk(1, 2)
- should-fail()
+testing "if version works" dir "./root" {
+ send(Tversion, notag, msize, np2000)
+ m = recv()
+ assert m.type == Rversion
}
-testing "walk with invalid fid (multiple times)" dir "./root" {
- mount(0, "/")
-
- repeat 10 {
- walk(1, 2)
- should-fail()
- }
+testing "fails when sending a R-message" dir "./root" {
+ send(Rversion, notag, msize, np2000)
+ should-fail recv() : "the connection should have been closed"
}
testing "walk to a directory" dir "./root" {
+ skip() # we can't parse Rwalks yet
+
mount(0, "/")
walk(0, 1, "dir", "subdir")
m = recv()
- assert(
- m.type == Rwalk,
- m.nwqid == 2,
- m.wqid.0.type == QTDIR,
- m.wqid.1.type == QTDIR,
+ assert (
+ m.type == Rwalk
+ m.nwqid == 2
+ m.wqid.0.type == QTDIR
+ m.wqid.1.type == QTDIR
)
}
+
+testing "walk with invalid fid" dir "./root" {
+ mount(0, "/")
+ walk(1, 2)
+ expect-error()
+}
blob - 6b74c0e607b64670f039d7d916f54619ee76c462
blob + c8fd066261c5e2830e8bf437cdc901ba21ddd9cd
--- run-tests.sh
+++ run-tests.sh
cd regress
-./../ninepscript super-simple.9ps
+./../ninepscript t.9ps