[tests] change to test mtd apps (#2140)

* [mle] fix mtd child not reattach after partition
This commit is contained in:
Buke Po
2017-09-10 21:14:14 -07:00
committed by Jonathan Hui
parent 632e6913c0
commit 6060448140
59 changed files with 162 additions and 80 deletions
+3
View File
@@ -51,6 +51,9 @@ matrix:
- env: BUILD_TARGET="posix-ncp" VERBOSE=1
os: linux
compiler: gcc
- env: BUILD_TARGET="posix-mtd" VERBOSE=1
os: linux
compiler: gcc
- env: BUILD_TARGET="pretty-check"
os: linux
- env: BUILD_TARGET="scan-build" CC="clang" CXX="clang++"
+2 -2
View File
@@ -39,7 +39,7 @@ cd /tmp || die
[ $TRAVIS_OS_NAME != linux ] || {
sudo apt-get update || die
[ $BUILD_TARGET != posix-distcheck -a $BUILD_TARGET != posix-32-bit -a $BUILD_TARGET != posix-ncp ] || {
[ $BUILD_TARGET != posix-distcheck -a $BUILD_TARGET != posix-32-bit -a $BUILD_TARGET != posix-mtd -a $BUILD_TARGET != posix-ncp ] || {
pip install --upgrade pip || die
pip install --user -r $TRAVIS_BUILD_DIR/tests/scripts/thread-cert/requirements.txt || die
[ $BUILD_TARGET != posix-ncp ] || {
@@ -85,7 +85,7 @@ cd /tmp || die
arc-elf32-gcc --version || die
}
[ $BUILD_TARGET != posix-32-bit ] || {
[ $BUILD_TARGET != posix-32-bit -a $BUILD_TARGET != posix-mtd ] || {
sudo apt-get install g++-multilib || die
}
+5
View File
@@ -261,6 +261,11 @@ set -x
COVERAGE=1 CFLAGS=-m32 CXXFLAGS=-m32 LDFLAGS=-m32 make -f examples/Makefile-posix check || die
}
[ $BUILD_TARGET != posix-mtd ] || {
./bootstrap || die
COVERAGE=1 CFLAGS=-m32 CXXFLAGS=-m32 LDFLAGS=-m32 USE_MTD=1 make -f examples/Makefile-posix check || die
}
[ $BUILD_TARGET != posix-ncp-spi ] || {
./bootstrap || die
make -f examples/Makefile-posix check configure_OPTIONS="--enable-ncp-app=ftd --with-ncp-bus=spi --with-examples=posix" || die
+1 -1
View File
@@ -194,7 +194,7 @@ otError Dataset::Print(otOperationalDataset &aDataset)
otError Dataset::Process(otInstance *aInstance, int argc, char *argv[], Server &aServer)
{
otError error = OT_ERROR_NONE;
otError error = OT_ERROR_PARSE;
sServer = &aServer;
+17 -3
View File
@@ -2260,13 +2260,27 @@ otError Mle::HandleAdvertisement(const Message &aMessage, const Ip6::MessageInfo
otLogInfoMle(GetInstance(), "Received advertisement from %04x", sourceAddress.GetRloc16());
aMessageInfo.GetPeerAddr().ToExtAddress(macAddr);
if (mRole != OT_DEVICE_ROLE_DETACHED)
{
SuccessOrExit(error = netif.GetMle().HandleAdvertisement(aMessage, aMessageInfo));
if (mDeviceMode & ModeTlv::kModeFFD)
{
SuccessOrExit(error = netif.GetMle().HandleAdvertisement(aMessage, aMessageInfo));
}
else
{
// Remove stale parent.
if (GetNeighbor(macAddr) == static_cast<Neighbor *>(&mParent) &&
mParent.GetRloc16() != sourceAddress.GetRloc16())
{
BecomeDetached();
mParent.GetLinkInfo().Clear();
mParent.SetState(Neighbor::kStateInvalid);
}
}
}
aMessageInfo.GetPeerAddr().ToExtAddress(macAddr);
isNeighbor = false;
switch (mRole)
@@ -40,13 +40,14 @@ ED = 3
SED = 4
SNIFFER = 5
MTDS = [ED, SED]
class Cert_5_1_02_ChildAddressTimeout(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1, 5):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i in MTDS))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -40,7 +40,7 @@ class Cert_5_1_07_MaxChildCount(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1, 13):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i >= 3))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -40,11 +40,13 @@ REED = 5
ED2 = 6
ED3 = 7
MTDS = [ED1, ED2, ED3]
class Cert_5_2_5_AddressQuery(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,8):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i in MTDS))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -41,7 +41,7 @@ class Cert_5_3_2_RealmLocal(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,5):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == SED1))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -42,7 +42,7 @@ class Cert_5_3_3_AddressQuery(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,6):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == ED2))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -40,11 +40,13 @@ ED3 = 5
ED4 = 6
ED5 = 7
MTDS = [SED1, ED2, ED3, ED4, ED5]
class Cert_5_3_4_AddressMapCache(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,8):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i in MTDS))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -39,11 +39,13 @@ ED1 = 4
ED2 = 5
ED3 = 6
MTDS = [ED1, ED2, ED3]
class Cert_5_3_7_DuplicateAddress(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,7):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i in MTDS))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -38,11 +38,13 @@ ED2 = 3
ED3 = 4
ED4 = 5
MTDS = [ED1, ED2, ED3, ED4]
class Cert_5_3_8_ChildAddressSet(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,6):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i in MTDS))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -42,7 +42,7 @@ class Cert_5_3_09_AddressQuery(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,6):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == SED1))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -42,7 +42,7 @@ class Cert_5_3_10_AddressQuery(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,6):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == SED2))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -40,7 +40,7 @@ class Cert_5_5_2_LeaderReboot(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,4):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == ED))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -39,11 +39,13 @@ ED1 = 4
ED2 = 5
ED3 = 6
MTDS = [ED1, ED2, ED3]
class Cert_5_5_3_SplitMergeChildren(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,7):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i in MTDS))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -49,7 +49,7 @@ class Cert_5_5_5_SplitMergeREED(unittest.TestCase):
self.nodes[LEADER].set_mode('rsdn')
for i in range(ROUTER2, ROUTER15+1):
self.nodes[LEADER].add_whitelist(self.nodes[i].get_addr64())
self.nodes[LEADER].enable_whitelist()
self.nodes[LEADER].enable_whitelist()
for i in range(ROUTER2, ROUTER15+1):
self.nodes[i].set_panid(0xface)
@@ -42,7 +42,7 @@ class Cert_5_5_8_SplitRoutersLostLeader(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,6):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == ED1))
self.nodes[LEADER1].set_panid(0xface)
self.nodes[LEADER1].set_mode('rsdn')
@@ -37,11 +37,13 @@ ROUTER = 2
ED1 = 3
SED1 = 4
MTDS = [ED1, SED1]
class Cert_5_6_1_NetworkDataLeaderAsBr(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,5):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i in MTDS))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -37,11 +37,13 @@ ROUTER = 2
ED1 = 3
SED1 = 4
MTDS = [ED1, SED1]
class Cert_5_6_2_NetworkDataRouterAsBr(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,5):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i in MTDS))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -37,11 +37,13 @@ ROUTER = 2
ED1 = 3
SED1 = 4
MTDS = [ED1, SED1]
class Cert_5_6_3_NetworkDataRegisterAfterAttachLeader(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,5):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i in MTDS))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -37,11 +37,13 @@ ROUTER = 2
ED1 = 3
SED1 = 4
MTDS = [ED1, SED1]
class Cert_5_6_4_NetworkDataRegisterAfterAttachRouter(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,5):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i in MTDS))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -37,11 +37,13 @@ ROUTER = 2
ED1 = 3
SED1 = 4
MTDS = [ED1, SED1]
class Cert_5_6_5_NetworkDataRegisterAfterAttachRouter(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,5):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i in MTDS))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -37,11 +37,13 @@ ROUTER = 2
ED1 = 3
SED1 = 4
MTDS = [ED1, SED1]
class Cert_5_6_6_NetworkDataExpiration(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,5):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i in MTDS))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -40,7 +40,7 @@ class Cert_5_6_8_ContextManagement(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,4):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == ED))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -38,11 +38,13 @@ ROUTER2 = 3
ED = 4
SED = 5
MTDS = [ED, SED]
class Cert_5_6_9_NetworkDataForwarding(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,6):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i in MTDS))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -39,7 +39,7 @@ class Cert_5_8_1_KeySynchronization(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,3):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == ED))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -42,7 +42,7 @@ class Cert_6_1_1_RouterAttach(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,3):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == ED))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -40,7 +40,7 @@ class Cert_6_1_2_REEDAttach(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,4):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == ED))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -42,7 +42,7 @@ class Cert_6_1_3_RouterAttachConnectivity(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,6):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == ED))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -42,7 +42,7 @@ class Cert_6_1_4_REEDAttachConnectivity(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,6):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == ED))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -41,7 +41,7 @@ class Cert_6_1_5_RouterAttachLinkQuality(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,5):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == ED))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -41,7 +41,7 @@ class Cert_6_1_6_REEDAttachLinkQuality(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,5):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == ED))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -42,7 +42,7 @@ class Cert_6_1_7_EDSynchronization(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,6):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == ED))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -40,7 +40,7 @@ class Cert_6_2_1_NewPartition(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,4):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == ED))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -41,7 +41,7 @@ class Cert_6_2_2_NewPartition(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,5):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == ED))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -40,7 +40,7 @@ class Cert_6_3_1_OrphanReattach(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,4):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == ED))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -39,7 +39,7 @@ class Cert_5_6_2_NetworkDataUpdate(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,3):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == ED))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -39,7 +39,7 @@ class Cert_6_4_1_LinkLocal(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,3):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == ED))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -40,7 +40,7 @@ class Cert_5_3_2_RealmLocal(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,5):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == ED))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -39,7 +39,7 @@ class Cert_6_5_1_ChildResetSynchronize(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,3):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == ED))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -39,7 +39,7 @@ class Cert_6_5_2_ChildResetReattach(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,3):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == ED))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -39,7 +39,7 @@ class Cert_6_6_1_KeyIncrement(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,3):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == ED))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -39,7 +39,7 @@ class Cert_6_6_2_KeyIncrement1(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,3):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == ED))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -37,11 +37,13 @@ ROUTER = 2
SED1 = 3
ED1 = 4
MTDS = [SED1, ED1]
class Cert_7_1_1_BorderRouterAsLeader(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,5):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i in MTDS))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -37,11 +37,13 @@ ROUTER = 2
ED2 = 3
SED2 = 4
MTDS = [ED2, SED2]
class Cert_7_1_2_BorderRouterAsRouter(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,5):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i in MTDS))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -37,11 +37,13 @@ ROUTER = 2
SED1 = 3
ED1 = 4
MTDS = [SED1, ED1]
class Cert_7_1_3_BorderRouterAsLeader(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,5):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i in MTDS))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -37,11 +37,13 @@ ROUTER = 2
ED2 = 3
SED2 = 4
MTDS = [SED2, ED2]
class Cert_7_1_4_BorderRouterAsRouter(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,5):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i in MTDS))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -37,11 +37,13 @@ ROUTER = 2
ED2 = 3
SED2 = 4
MTDS = [ED2, SED2]
class Cert_7_1_5_BorderRouterAsRouter(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,5):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i in MTDS))
self.nodes[LEADER].set_panid(0xface)
self.nodes[LEADER].set_mode('rsdn')
@@ -45,11 +45,13 @@ LEADER_ACTIVE_TIMESTAMP = 10
COMMISSIONER_PENDING_CHANNEL = 20
COMMISSIONER_PENDING_PANID = 0xafce
MTDS = [ED, SED]
class Cert_9_2_8_PersistentDatasets(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,6):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i in MTDS))
self.nodes[COMMISSIONER].set_active_dataset(LEADER_ACTIVE_TIMESTAMP, panid=PANID_INIT, channel=CHANNEL_INIT)
self.nodes[COMMISSIONER].set_mode('rsdn')
@@ -69,11 +71,13 @@ class Cert_9_2_8_PersistentDatasets(unittest.TestCase):
self.nodes[ROUTER].set_mode('rsdn')
self._setUpRouter()
self.nodes[ED].set_active_dataset(LEADER_ACTIVE_TIMESTAMP, panid=PANID_INIT, channel=CHANNEL_INIT)
self.nodes[ED].set_channel(CHANNEL_INIT)
self.nodes[ED].set_panid(PANID_INIT)
self.nodes[ED].set_mode('rsn')
self._setUpEd()
self.nodes[SED].set_active_dataset(LEADER_ACTIVE_TIMESTAMP, panid=PANID_INIT, channel=CHANNEL_INIT)
self.nodes[SED].set_channel(CHANNEL_INIT)
self.nodes[SED].set_panid(PANID_INIT)
self.nodes[SED].set_mode('s')
self._setUpSed()
@@ -44,11 +44,13 @@ ROUTER1 = 3
ED1 = 4
SED1 = 5
MTDS = [ED1, SED1]
class Cert_9_2_10_PendingPartition(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,6):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i in MTDS))
self.nodes[COMMISSIONER].set_active_dataset(15, channel=CHANNEL_INIT, panid=PANID_INIT)
self.nodes[COMMISSIONER].set_mode('rsdn')
@@ -72,12 +74,14 @@ class Cert_9_2_10_PendingPartition(unittest.TestCase):
self.nodes[ROUTER1].enable_whitelist()
self.nodes[ROUTER1].set_router_selection_jitter(1)
self.nodes[ED1].set_active_dataset(15, channel=CHANNEL_INIT, panid=PANID_INIT)
self.nodes[ED1].set_channel(CHANNEL_INIT)
self.nodes[ED1].set_panid(PANID_INIT)
self.nodes[ED1].set_mode('rsn')
self.nodes[ED1].add_whitelist(self.nodes[ROUTER1].get_addr64())
self.nodes[ED1].enable_whitelist()
self.nodes[SED1].set_active_dataset(15, channel=CHANNEL_INIT, panid=PANID_INIT)
self.nodes[SED1].set_channel(CHANNEL_INIT)
self.nodes[SED1].set_panid(PANID_INIT)
self.nodes[SED1].set_mode('s')
self.nodes[SED1].add_whitelist(self.nodes[ROUTER1].get_addr64())
self.nodes[SED1].enable_whitelist()
@@ -44,11 +44,13 @@ ROUTER1 = 3
ED1 = 4
SED1 = 5
MTDS = [ED1, SED1]
class Cert_9_2_11_MasterKey(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,6):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i in MTDS))
self.nodes[COMMISSIONER].set_active_dataset(10, channel=CHANNEL_INIT, panid=PANID_INIT, master_key=KEY1)
self.nodes[COMMISSIONER].set_mode('rsdn')
@@ -71,12 +73,16 @@ class Cert_9_2_11_MasterKey(unittest.TestCase):
self.nodes[ROUTER1].enable_whitelist()
self.nodes[ROUTER1].set_router_selection_jitter(1)
self.nodes[ED1].set_active_dataset(10, channel=CHANNEL_INIT, panid=PANID_INIT, master_key=KEY1)
self.nodes[ED1].set_channel(CHANNEL_INIT)
self.nodes[ED1].set_panid(PANID_INIT)
self.nodes[ED1].set_masterkey(KEY1)
self.nodes[ED1].set_mode('rsn')
self.nodes[ED1].add_whitelist(self.nodes[ROUTER1].get_addr64())
self.nodes[ED1].enable_whitelist()
self.nodes[SED1].set_active_dataset(10, channel=CHANNEL_INIT, panid=PANID_INIT, master_key=KEY1)
self.nodes[SED1].set_channel(CHANNEL_INIT)
self.nodes[SED1].set_panid(PANID_INIT)
self.nodes[SED1].set_masterkey(KEY1)
self.nodes[SED1].set_mode('s')
self.nodes[SED1].add_whitelist(self.nodes[ROUTER1].get_addr64())
self.nodes[SED1].enable_whitelist()
@@ -50,7 +50,7 @@ class Cert_9_2_12_Announce(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,6):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == MED))
self.nodes[LEADER1].set_active_dataset(DATASET1_TIMESTAMP, channel=DATASET1_CHANNEL, panid=DATASET1_PANID)
self.nodes[LEADER1].set_mode('rsdn')
@@ -78,7 +78,8 @@ class Cert_9_2_12_Announce(unittest.TestCase):
self.nodes[ROUTER2].enable_whitelist()
self.nodes[ROUTER2].set_router_selection_jitter(1)
self.nodes[MED].set_active_dataset(DATASET2_TIMESTAMP, channel=DATASET2_CHANNEL, panid=DATASET2_PANID)
self.nodes[MED].set_channel(DATASET2_CHANNEL)
self.nodes[MED].set_panid(DATASET2_PANID)
self.nodes[MED].set_mode('rsn')
self.nodes[MED].add_whitelist(self.nodes[ROUTER2].get_addr64())
self.nodes[MED].enable_whitelist()
@@ -41,7 +41,7 @@ class Cert_9_2_13_EnergyScan(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,5):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == ED1))
self.nodes[COMMISSIONER].set_panid(0xface)
self.nodes[COMMISSIONER].set_mode('rsdn')
@@ -45,7 +45,7 @@ class Cert_9_2_17_Orphan(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,4):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i == ED1))
self.nodes[LEADER1].set_active_dataset(10, channel=CHANNEL1, panid=PANID_INIT, channel_mask=CHANNEL_MASK)
self.nodes[LEADER1].set_mode('rsdn')
@@ -58,8 +58,9 @@ class Cert_9_2_17_Orphan(unittest.TestCase):
self.nodes[LEADER2].enable_whitelist()
self.nodes[LEADER2].set_router_selection_jitter(1)
self.nodes[ED1].set_active_dataset(10, channel=CHANNEL1, panid=PANID_INIT, channel_mask=CHANNEL_MASK)
self.nodes[ED1].set_channel(CHANNEL1)
self.nodes[ED1].set_mode('rsn')
self.nodes[ED1].set_panid(PANID_INIT)
self.nodes[ED1].add_whitelist(self.nodes[LEADER1].get_addr64())
self.nodes[ED1].enable_whitelist()
self.nodes[ED1].set_timeout(3)
@@ -45,11 +45,13 @@ ROUTER2 = 4
ED1 = 5
SED1 = 6
MTDS = [ED1, SED1]
class Cert_9_2_18_RollBackActiveTimestamp(unittest.TestCase):
def setUp(self):
self.nodes = {}
for i in range(1,7):
self.nodes[i] = node.Node(i)
self.nodes[i] = node.Node(i, (i in MTDS))
self.nodes[COMMISSIONER].set_active_dataset(1, channel=CHANNEL_INIT, panid=PANID_INIT, master_key=KEY1)
self.nodes[COMMISSIONER].set_mode('rsdn')
@@ -80,13 +82,17 @@ class Cert_9_2_18_RollBackActiveTimestamp(unittest.TestCase):
self.nodes[ROUTER2].enable_whitelist()
self.nodes[ROUTER2].set_router_selection_jitter(1)
self.nodes[ED1].set_active_dataset(1, channel=CHANNEL_INIT, panid=PANID_INIT, master_key=KEY1)
self.nodes[ED1].set_channel(CHANNEL_INIT)
self.nodes[ED1].set_masterkey(KEY1)
self.nodes[ED1].set_mode('rsn')
self.nodes[ED1].set_panid(PANID_INIT)
self.nodes[ED1].add_whitelist(self.nodes[ROUTER1].get_addr64())
self.nodes[ED1].enable_whitelist()
self.nodes[SED1].set_active_dataset(1, channel=CHANNEL_INIT, panid=PANID_INIT, master_key=KEY1)
self.nodes[SED1].set_channel(CHANNEL_INIT)
self.nodes[SED1].set_masterkey(KEY1)
self.nodes[SED1].set_mode('s')
self.nodes[SED1].set_panid(PANID_INIT)
self.nodes[SED1].add_whitelist(self.nodes[ROUTER1].get_addr64())
self.nodes[SED1].enable_whitelist()
self.nodes[SED1].set_timeout(3)
+3 -3
View File
@@ -37,9 +37,9 @@ else:
import unittest
class Node:
def __init__(self, nodeid):
def __init__(self, nodeid, is_mtd=False):
if sys.platform != 'win32':
self.interface = node_cli.otCli(nodeid)
self.interface = node_cli.otCli(nodeid, is_mtd)
else:
self.interface = node_api.otApi(nodeid)
@@ -67,7 +67,7 @@ class Node:
def thread_stop(self):
self.interface.thread_stop()
def commissioner_start(self):
self.interface.commissioner_start()
+12 -9
View File
@@ -33,30 +33,33 @@ import time
import pexpect
class otCli:
def __init__(self, nodeid):
def __init__(self, nodeid, is_mtd):
self.nodeid = nodeid
self.verbose = int(float(os.getenv('VERBOSE', 0)))
self.node_type = os.getenv('NODE_TYPE', 'sim')
mode = os.environ.get('USE_MTD') is '1' and is_mtd and 'mtd' or 'ftd'
if self.node_type == 'soc':
self.__init_soc(nodeid)
elif self.node_type == 'ncp-sim':
self.__init_ncp_sim(nodeid)
# TODO use mode after ncp-mtd is available.
self.__init_ncp_sim(nodeid, 'ftd')
else:
self.__init_sim(nodeid)
self.__init_sim(nodeid, mode)
if self.verbose:
self.pexpect.logfile_read = sys.stdout
def __init_sim(self, nodeid):
def __init_sim(self, nodeid, mode):
""" Initialize a simulation node. """
if "OT_CLI_PATH" in os.environ.keys():
cmd = os.environ['OT_CLI_PATH']
elif "top_builddir" in os.environ.keys():
srcdir = os.environ['top_builddir']
cmd = '%s/examples/apps/cli/ot-cli-ftd' % srcdir
cmd = '%s/examples/apps/cli/ot-cli-%s' % (srcdir, mode)
else:
cmd = './ot-cli-ftd'
cmd = './ot-cli-%s' % mode
cmd += ' %d' % nodeid
print ("%s" % cmd)
@@ -66,13 +69,13 @@ class otCli:
time.sleep(0.2)
def __init_ncp_sim(self, nodeid):
def __init_ncp_sim(self, nodeid, mode):
""" Initialize an NCP simulation node. """
if "top_builddir" in os.environ.keys():
builddir = os.environ['top_builddir']
cmd = 'spinel-cli.py -p %s/examples/apps/ncp/ot-ncp-ftd -n' % (builddir)
cmd = 'spinel-cli.py -p %s/examples/apps/ncp/ot-ncp-%s -n' % (builddir, mode)
else:
cmd = './ot-ncp-ftd'
cmd = './ot-ncp-%s' % mode
cmd += ' %d' % nodeid
print ("%s" % cmd)