blob: 3bbc42a58282ac827c66250154e8729fd145ba7a [file] [log] [blame]
/*
*
* Copyright (c) 2016-2017 Nest Labs, Inc.
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @file
* This file defines an automated test suite for functional testing
* of the Weave Tunnel.
*/
#ifndef TEST_WEAVE_TUNNEL_H_
#define TEST_WEAVE_TUNNEL_H_
#include <Weave/Core/WeaveCore.h>
#include <Weave/Core/WeaveServerBase.h>
#include <Weave/Profiles/WeaveProfiles.h>
#include <nltest.h>
#define DEFAULT_TEST_DURATION_MILLISECS (5000)
#define RECONNECT_TEST_DURATION_MILLISECS (2 * DEFAULT_TEST_DURATION_MILLISECS)
#define TEST_SLEEP_TIME_WITHIN_LOOP_MICROSECS (100000)
#define TEST_SLEEP_TIME_WITHIN_LOOP_SECS (0)
#define TEST_TUNNEL_RECONNECT_HOSTNAME "tunnel01.frontend.nestlabs.com"
#if WEAVE_CONFIG_ENABLE_TUNNELING
using namespace ::nl::Inet;
using namespace ::nl::Weave;
enum
{
kWeaveProfile_TunnelTest_Start = 201,
kWeaveProfile_TunnelTest_End = 202,
kWeaveProfile_TunnelTest_RequestTunnelConnDrop = 203,
};
enum
{
kTestNum_TestWeaveTunnelAgentInit = 0,
kTestNum_TestWeaveTunnelAgentConfigure = 1,
kTestNum_TestWeaveTunnelAgentShutdown = 2,
kTestNum_TestStartTunnelWithoutInit = 3,
kTestNum_TestBackToBackStartStopStart = 4,
kTestNum_TestTunnelOpenCompleteThenStopStart = 5,
kTestNum_TestReceiveStatusReportForTunnelOpen = 6,
kTestNum_TestTunnelRestrictedRoutingOnTunnelOpen = 7,
kTestNum_TestTunnelOpenThenTunnelClose = 8,
kTestNum_TestStandaloneTunnelSetup = 9,
kTestNum_TestTunnelNoStatusReportReconnect = 10,
kTestNum_TestTunnelErrorStatusReportReconnect = 11,
kTestNum_TestTunnelErrorStatusReportOnTunnelClose = 12,
kTestNum_TestTunnelConnectionDownReconnect = 13,
kTestNum_TestCallTunnelDownAfterMaxReconnects = 14,
kTestNum_TestReceiveReconnectFromService = 15,
kTestNum_TestWARMRouteAddWhenTunnelEstablished = 16,
kTestNum_TestWARMRouteDeleteWhenTunnelStopped = 17,
kTestNum_TestWeavePingOverTunnel = 18,
kTestNum_TestQueueingOfTunneledPackets = 19,
kTestNum_TestTunnelStatistics = 20,
kTestNum_TestTCPUserTimeoutOnAddrRemoval = 21,
kTestNum_TestTunnelLivenessSendAndRecvResponse = 22,
kTestNum_TestTunnelLivenessDisconnectOnNoResponse = 23,
};
#endif // WEAVE_CONFIG_ENABLE_TUNNELING
#endif // TEST_WEAVE_TUNNEL_H_