mtp3: Introduce some basic structures for MTP3 decoding
This starts to introduce some basic MTP3 message decoding and encoding using the generic MessageBuffer classes.
This commit is contained in:
parent
7ccefaa16e
commit
009957dffc
6
Makefile
6
Makefile
|
@ -43,7 +43,9 @@ OSMO = \
|
|||
osmo/OsmoUDPSocket.st osmo/OsmoCtrlLogging.st \
|
||||
osmo/OsmoCtrlGrammar.st osmo/OsmoAppConnection.st \
|
||||
osmo/OsmoCtrlConnection.st osmo/OsmoCtrlGrammarTest.st
|
||||
|
||||
|
||||
MTP3 = \
|
||||
mtp3/MTP3Messages.st mtp3/MTP3MessagesTests.st
|
||||
|
||||
|
||||
|
||||
|
@ -53,7 +55,7 @@ all:
|
|||
convert:
|
||||
$(GST_CONVERT) $(CONVERT_RULES) -F squeak -f gst \
|
||||
-o fileout.st pharo-porting/compat_for_pharo.st \
|
||||
$(CORE) $(IPA) $(SCCP) $(ISUP) $(UA) $(OSMO) \
|
||||
$(CORE) $(IPA) $(SCCP) $(ISUP) $(UA) $(OSMO) $(MTP3) \
|
||||
Tests.st pharo-porting/changes_for_pharo.st
|
||||
sed -i s,"=>","==>",g fileout.st
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,101 @@
|
|||
TestCase subclass: MTP3LabelTest [
|
||||
|
||||
<comment: nil>
|
||||
<category: 'OsmoNetwork-MTP3-Tests'>
|
||||
|
||||
testParseFrom [
|
||||
| data stream label |
|
||||
data := #(16r01 16r80 16r00 16r00) asByteArray.
|
||||
stream := data readStream.
|
||||
label := MTP3Label parseFrom: stream.
|
||||
self assert: stream atEnd.
|
||||
self assert: label dpc = 1.
|
||||
self assert: label opc = 2.
|
||||
self assert: label slc = 0.
|
||||
self assert: label toMessage asByteArray = data
|
||||
]
|
||||
]
|
||||
|
||||
|
||||
|
||||
TestCase subclass: MTP3SLTAMSGTest [
|
||||
|
||||
<comment: 'A MTP3SLTAMSGTest is a test class for testing the behavior of MTP3SLTAMSG'>
|
||||
<category: 'OsmoNetwork-MTP3-Tests'>
|
||||
|
||||
testParsing [
|
||||
| data stream msg |
|
||||
data := #(16r81 16r02 16r40 16r00 16r00 16r21 16rE0 16r47 16r53 16r4D 16r4D 16r4D 16r53 16r00 16r00 16r00 16r00 16r00 16r00 16r00 16r00)
|
||||
asByteArray.
|
||||
stream := data readStream.
|
||||
msg := MTP3MSG parseFrom: stream.
|
||||
self assert: stream atEnd.
|
||||
self assert: msg class = MTP3SLTAMSG.
|
||||
self assert: msg testPattern
|
||||
= #(16r47 16r53 16r4D 16r4D 16r4D 16r53 16r00 16r00 16r00 16r00 16r00 16r00 16r00 16r00)
|
||||
asByteArray.
|
||||
self assert: msg toMessage asByteArray = data
|
||||
]
|
||||
]
|
||||
|
||||
|
||||
|
||||
TestCase subclass: MTP3SLTMMSGTest [
|
||||
|
||||
<comment: 'A MTP3SLTMMSGTest is a test class for testing the behavior of MTP3SLTMMSG'>
|
||||
<category: 'OsmoNetwork-MTP3-Tests'>
|
||||
|
||||
testParsing [
|
||||
| data stream msg |
|
||||
data := #(16r81 16r02 16r40 16r00 16r00 16r11 16rE0 16r47 16r53 16r4D 16r4D 16r4D 16r53 16r00 16r00 16r00 16r00 16r00 16r00 16r00 16r00)
|
||||
asByteArray.
|
||||
stream := data readStream.
|
||||
msg := MTP3MSG parseFrom: stream.
|
||||
self assert: stream atEnd.
|
||||
self assert: msg class = MTP3SLTMMSG.
|
||||
self assert: msg testPattern
|
||||
= #(16r47 16r53 16r4D 16r4D 16r4D 16r53 16r00 16r00 16r00 16r00 16r00 16r00 16r00 16r00)
|
||||
asByteArray.
|
||||
self assert: msg toMessage asByteArray = data
|
||||
]
|
||||
]
|
||||
|
||||
|
||||
|
||||
TestCase subclass: MTP3ServiceIndicatorsTest [
|
||||
|
||||
<comment: 'A MTP3ServiceIndicatorsTest is a test class for testing the behavior of MTP3ServiceIndicators'>
|
||||
<category: 'OsmoNetwork-MTP3-Tests'>
|
||||
|
||||
testParseFrom [
|
||||
| data stream field |
|
||||
data := #(16r81) asByteArray.
|
||||
stream := data readStream.
|
||||
field := MTP3ServiceIndicators parseFrom: stream.
|
||||
self assert: stream atEnd.
|
||||
self assert: field subServiceField = MTP3ServiceIndicators nationalNetwork.
|
||||
self assert: field serviceIndicator
|
||||
= MTP3ServiceIndicators signallingNetworkTestingAndMaintenance.
|
||||
self assert: field toMessage asByteArray = data
|
||||
]
|
||||
]
|
||||
|
||||
|
||||
|
||||
TestCase subclass: MTP3HeadingTest [
|
||||
|
||||
<comment: 'A MTP3HeadingTest is a test class for testing the behavior of MTP3Heading'>
|
||||
<category: 'OsmoNetwork-MTP3-Tests'>
|
||||
|
||||
testParsing [
|
||||
| data stream field |
|
||||
data := #(16r14) asByteArray.
|
||||
stream := data readStream.
|
||||
field := MTP3Heading parseFrom: stream.
|
||||
self assert: stream atEnd.
|
||||
self assert: field h0 = MTP3TFMMSG h0.
|
||||
self assert: field h1 = MTP3TFPMSG h1.
|
||||
self assert: field toMessage asByteArray = data
|
||||
]
|
||||
]
|
||||
|
|
@ -23,6 +23,7 @@
|
|||
<filein>ipa/IPAMsg.st</filein>
|
||||
<filein>sccp/SCCP.st</filein>
|
||||
<filein>sccp/SCCPAddress.st</filein>
|
||||
<filein>mtp3/MTP3Messages.st</filein>
|
||||
<filein>ua/M2UA.st</filein>
|
||||
<filein>osmo/LogAreaOsmo.st</filein>
|
||||
<filein>osmo/OsmoUDPSocket.st</filein>
|
||||
|
@ -45,10 +46,18 @@
|
|||
<sunit>Osmo.TLVDescriptionTest</sunit>
|
||||
<sunit>Osmo.CtrlGrammarTest</sunit>
|
||||
<sunit>Osmo.CtrlParserTest</sunit>
|
||||
|
||||
<sunit>Osmo.MTP3LabelTest</sunit>
|
||||
<sunit>Osmo.MTP3SLTAMSGTest</sunit>
|
||||
<sunit>Osmo.MTP3SLTMMSGTest</sunit>
|
||||
<sunit>Osmo.MTP3ServiceIndicatorsTest</sunit>
|
||||
<sunit>Osmo.MTP3HeadingTest</sunit>
|
||||
|
||||
<filein>Tests.st</filein>
|
||||
<filein>core/TLVTests.st</filein>
|
||||
<filein>isup/ISUPTests.st</filein>
|
||||
<filein>ipa/IPATests.st</filein>
|
||||
<filein>osmo/OsmoCtrlGrammarTest.st</filein>
|
||||
<filein>mtp3/MTP3MessagesTests.st</filein>
|
||||
</test>
|
||||
</package>
|
||||
|
|
Reference in New Issue