| % Test mount layer |
| #################### |
| #################### |
| |
| + Packet Creation Tests |
| |
| = Create subpackets |
| Path() |
| File_Object() |
| |
| = Create Mount Calls |
| NULL_Call() |
| MOUNT_Call() |
| UNMOUNT_Call() |
| |
| = Create Successful Mount Replies |
| MOUNT_Reply(status=0) |
| |
| = Create Failed Mount Replies |
| MOUNT_Reply(status=1) |
| |
| + RPC Layer bindings tests |
| |
| = Layer Bindings for Mount Calls |
| from scapy.contrib.oncrpc import * |
| pkt = RPC()/RPC_Call()/NULL_Call() |
| assert (pkt.mtype, pkt.program, pkt.pversion, pkt.procedure) == (0, 100005, 3, 0) |
| pkt = RPC()/RPC_Call()/MOUNT_Call() |
| assert (pkt.mtype, pkt.program, pkt.pversion, pkt.procedure) == (0, 100005, 3, 1) |
| pkt = RPC()/RPC_Call()/UNMOUNT_Call() |
| assert (pkt.mtype, pkt.program, pkt.pversion, pkt.procedure) == (0, 100005, 3, 3) |
| |
| = Layer Bindings for Mount Replies |
| from scapy.contrib.oncrpc import * |
| pkt = RPC()/RPC_Reply()/NULL_Reply() |
| assert pkt.mtype == 1 |
| pkt = RPC()/RPC_Reply()/MOUNT_Reply() |
| assert pkt.mtype == 1 |
| pkt = RPC()/RPC_Reply()/UNMOUNT_Reply() |
| assert pkt.mtype == 1 |
| |
| + Test Built Packets vs Raw Strings |
| |
| = Mount calls vs Raw strings |
| pkt = MOUNT_Call( |
| path=Path( |
| length=4, |
| path='path' |
| ) |
| ) |
| assert bytes(pkt) == b'\x00\x00\x00\x04path' |
| |
| pkt = UNMOUNT_Call( |
| path=Path( |
| length=4, |
| path='path' |
| ) |
| ) |
| assert bytes(pkt) == b'\x00\x00\x00\x04path' |
| |
| = Mount replies vs Raw Strings |
| pkt = MOUNT_Reply( |
| status=0, |
| filehandle=File_Object( |
| length=4, |
| fh='file' |
| ), |
| flavors=3, |
| flavor=[ |
| 0,0,0 |
| ] |
| ) |
| assert 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' |