1
0
Fork 0

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:
Holger Hans Peter Freyther 2013-04-06 11:36:41 +02:00
parent 7ccefaa16e
commit 009957dffc
4 changed files with 1549 additions and 2 deletions

View File

@ -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

1435
mtp3/MTP3Messages.st Normal file

File diff suppressed because it is too large Load Diff

101
mtp3/MTP3MessagesTests.st Normal file
View File

@ -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
]
]

View File

@ -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>