• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1% Test mount layer
2####################
3####################
4
5+ Packet Creation Tests
6
7= Create subpackets
8Path()
9File_Object()
10
11= Create Mount Calls
12NULL_Call()
13MOUNT_Call()
14UNMOUNT_Call()
15
16= Create Successful Mount Replies
17MOUNT_Reply(status=0)
18
19= Create Failed Mount Replies
20MOUNT_Reply(status=1)
21
22+ RPC Layer bindings tests
23
24= Layer Bindings for Mount Calls
25from scapy.contrib.oncrpc import *
26pkt = RPC()/RPC_Call()/NULL_Call()
27assert (pkt.mtype, pkt.program, pkt.pversion, pkt.procedure) == (0, 100005, 3, 0)
28pkt = RPC()/RPC_Call()/MOUNT_Call()
29assert (pkt.mtype, pkt.program, pkt.pversion, pkt.procedure) == (0, 100005, 3, 1)
30pkt = RPC()/RPC_Call()/UNMOUNT_Call()
31assert (pkt.mtype, pkt.program, pkt.pversion, pkt.procedure) == (0, 100005, 3, 3)
32
33= Layer Bindings for Mount Replies
34from scapy.contrib.oncrpc import *
35pkt = RPC()/RPC_Reply()/NULL_Reply()
36assert pkt.mtype == 1
37pkt = RPC()/RPC_Reply()/MOUNT_Reply()
38assert pkt.mtype == 1
39pkt = RPC()/RPC_Reply()/UNMOUNT_Reply()
40assert pkt.mtype == 1
41
42+ Test Built Packets vs Raw Strings
43
44= Mount calls vs Raw strings
45pkt = MOUNT_Call(
46    path=Path(
47        length=4,
48        path='path'
49    )
50)
51assert bytes(pkt) == b'\x00\x00\x00\x04path'
52
53pkt = UNMOUNT_Call(
54    path=Path(
55        length=4,
56        path='path'
57    )
58)
59assert bytes(pkt) == b'\x00\x00\x00\x04path'
60
61= Mount replies vs Raw Strings
62pkt = MOUNT_Reply(
63    status=0,
64    filehandle=File_Object(
65        length=4,
66        fh='file'
67    ),
68    flavors=3,
69    flavor=[
70        0,0,0
71    ]
72)
73assert bytes(pkt) == b'\x00\x00\x00\x00\x00\x00\x00\x04file\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
74