Blame


1 fb1a36c0 2022-01-09 op include "lib.9ps"
2 fb1a36c0 2022-01-09 op
3 fb1a36c0 2022-01-09 op # TODO: add a test that tries to do a walk after opening a fid for i/o.
4 fb1a36c0 2022-01-09 op
5 a0ec53a2 2022-01-09 op testing "walk to a directory" {
6 fb1a36c0 2022-01-09 op mount(0, "/")
7 fb1a36c0 2022-01-09 op walk(0, 1, "dir", "subdir")
8 fb1a36c0 2022-01-09 op
9 fb1a36c0 2022-01-09 op m = recv()
10 fb1a36c0 2022-01-09 op assert (
11 fb1a36c0 2022-01-09 op m.type == Rwalk
12 fb1a36c0 2022-01-09 op m.nwqid == 2
13 fb1a36c0 2022-01-09 op m.wqid.0.type == QTDIR
14 fb1a36c0 2022-01-09 op m.wqid.1.type == QTDIR
15 fb1a36c0 2022-01-09 op )
16 fb1a36c0 2022-01-09 op }
17 fb1a36c0 2022-01-09 op
18 a0ec53a2 2022-01-09 op testing "walk to a file" {
19 fb1a36c0 2022-01-09 op mount(0, "/")
20 fb1a36c0 2022-01-09 op walk(0, 1, "dir", "subdir", "file")
21 fb1a36c0 2022-01-09 op
22 fb1a36c0 2022-01-09 op m = recv()
23 fb1a36c0 2022-01-09 op assert (
24 fb1a36c0 2022-01-09 op m.type == Rwalk
25 fb1a36c0 2022-01-09 op m.nwqid == 3
26 fb1a36c0 2022-01-09 op m.wqid.0.type == QTDIR
27 fb1a36c0 2022-01-09 op m.wqid.1.type == QTDIR
28 fb1a36c0 2022-01-09 op m.wqid.2.type == QTFILE
29 fb1a36c0 2022-01-09 op )
30 fb1a36c0 2022-01-09 op }
31 fb1a36c0 2022-01-09 op
32 a0ec53a2 2022-01-09 op testing "can't walk from a file" {
33 fb1a36c0 2022-01-09 op mount(0, "/")
34 fb1a36c0 2022-01-09 op
35 fb1a36c0 2022-01-09 op walk(0, 1, "dir", "a-file")
36 fb1a36c0 2022-01-09 op expect(Rwalk)
37 fb1a36c0 2022-01-09 op
38 fb1a36c0 2022-01-09 op walk(1, 2, "subdir", "file")
39 fb1a36c0 2022-01-09 op expect-error()
40 fb1a36c0 2022-01-09 op }
41 fb1a36c0 2022-01-09 op
42 a0ec53a2 2022-01-09 op testing "walk with invalid fid" {
43 fb1a36c0 2022-01-09 op mount(0, "/")
44 fb1a36c0 2022-01-09 op walk(1, 2)
45 fb1a36c0 2022-01-09 op expect-error()
46 fb1a36c0 2022-01-09 op }
47 fb1a36c0 2022-01-09 op
48 a0ec53a2 2022-01-09 op testing "walk with empty string" {
49 fb1a36c0 2022-01-09 op mount(0, "/")
50 fb1a36c0 2022-01-09 op walk(0, 1, "")
51 fb1a36c0 2022-01-09 op expect-error()
52 fb1a36c0 2022-01-09 op }
53 fb1a36c0 2022-01-09 op
54 a0ec53a2 2022-01-09 op testing "walk to a non-existant file" {
55 fb1a36c0 2022-01-09 op mount(0, "/")
56 fb1a36c0 2022-01-09 op walk(0, 1, "non-exists")
57 fb1a36c0 2022-01-09 op expect-error()
58 fb1a36c0 2022-01-09 op }
59 fb1a36c0 2022-01-09 op
60 a0ec53a2 2022-01-09 op testing "walk with an invalid component" {
61 fb1a36c0 2022-01-09 op mount(0, "/")
62 fb1a36c0 2022-01-09 op walk(0, 1, "/non-exists")
63 fb1a36c0 2022-01-09 op expect-error()
64 fb1a36c0 2022-01-09 op }
65 fb1a36c0 2022-01-09 op
66 a0ec53a2 2022-01-09 op testing "zero-path walk don't reply with a qid" {
67 fb1a36c0 2022-01-09 op mount(0, "/")
68 fb1a36c0 2022-01-09 op walk(0, 1)
69 fb1a36c0 2022-01-09 op m = recv()
70 fb1a36c0 2022-01-09 op assert (
71 fb1a36c0 2022-01-09 op m.type == Rwalk
72 fb1a36c0 2022-01-09 op m.nwqid == 0
73 fb1a36c0 2022-01-09 op )
74 fb1a36c0 2022-01-09 op }