1% Tests for oncrpc module 2############ 3############ 4+ Packet Creation Tests 5 6= Create subpackets 7Object_Name() 8Auth_Unix() 9Auth_RPCSEC_GSS() 10Verifier_RPCSEC_GSS() 11 12= Create ONC RPC Packets 13RM_Header() 14RPC() 15RPC_Call() 16RPC_Reply() 17 18+ Test Layer bindings 19 20= RPC Message type 21pkt = RPC()/RPC_Call() 22assert pkt.mtype==0 23pkt = RPC()/RPC_Reply() 24assert pkt.mtype==1 25 26+ Test Built Packets vs Raw Strings 27 28= Test Built Packets vs Raw Strings 29pkt = RM_Header( 30 rm=0x80000000 31) 32assert bytes(pkt) == b'\x80\x00\x00\x00' 33 34pkt = RPC( 35 xid=0xabcdef12, 36 mtype='CALL' 37) 38assert bytes(pkt) == b'\xab\xcd\xef\x12\x00\x00\x00\x00' 39 40pkt = RPC_Call( 41 version=2, 42 program=100005, 43 pversion=3, 44 procedure=1, 45 aflavor='AUTH_UNIX', 46 a_unix=Auth_Unix( 47 stamp=0xffffffff, 48 mname=Object_Name( 49 length=5, 50 _name='MNAME', 51 fill='\x00\x00\x00' 52 ), 53 uid=1, 54 gid=1, 55 num_auxgids=1, 56 auxgids=[0] 57 ), 58 vflavor=1, 59 v_unix=Auth_Unix( 60 stamp=0xffffffff, 61 mname=Object_Name( 62 length=5, 63 _name='MNAME', 64 fill='\x00\x00\x00' 65 ), 66 uid=1, 67 gid=1, 68 num_auxgids=1, 69 auxgids=[0] 70 ) 71) 72assert bytes(pkt) == b'\x00\x00\x00\x02\x00\x01\x86\xa5\x00\x00\x00\x03\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00 \xff\xff\xff\xff\x00\x00\x00\x05MNAME\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x05MNAME\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00' 73 74pkt = RPC_Call( 75 version=2, 76 program=100021, 77 pversion=4, 78 procedure=20, 79 aflavor='RPCSEC_GSS', 80 a_rpcsec_gss=Auth_RPCSEC_GSS( 81 gss_version=1, 82 gss_procedure=0, 83 gss_seq_num=10, 84 gss_service=1, 85 gss_context=Object_Name( 86 length=4, 87 _name='AAAA', 88 fill='' 89 ), 90 ), 91 vflavor=6, 92 v_rpcsec_gss=Verifier_RPCSEC_GSS(b"\x00\x00\x00\x04\x41\x41\x41\x41") 93) 94assert bytes(pkt) == b'\x00\x00\x00\x02\x00\x01\x86\xb5\x00\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x06\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x01\x00\x00\x00\x04\x41\x41\x41\x41\x00\x00\x00\x06\x00\x00\x00\x04\x41\x41\x41\x41' 95 96pkt = RPC_Reply( 97 reply_stat=1, 98 flavor=1, 99 a_unix=Auth_Unix( 100 stamp=0xffffffff, 101 mname=Object_Name( 102 length=5, 103 _name='MNAME', 104 fill='\x00\x00\x00' 105 ), 106 uid=1, 107 gid=1, 108 num_auxgids=1, 109 auxgids=[0] 110 ), 111 length=32, 112 accept_stat=1 113) 114assert bytes(pkt) == b'\x00\x00\x00\x01\x00\x00\x00\x01\xff\xff\xff\xff\x00\x00\x00\x05MNAME\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x01' 115