
Add operator commands, and fix up the network info response handling for GSM/WCDMA capable devices like the UML190 when it's in GSM/WCDMA mode.
116 lines
3.5 KiB
C
116 lines
3.5 KiB
C
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
/*
|
|
* Copyright (C) 2010 Red Hat, Inc.
|
|
*
|
|
* This program is free software: you can redistribute it and/or
|
|
* modify it under the terms of version 2 of the GNU General Public
|
|
* License as published by the Free Software Foundation
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#include <glib.h>
|
|
#include <string.h>
|
|
|
|
#include "test-wmc-crc.h"
|
|
#include "test-wmc-escaping.h"
|
|
#include "test-wmc-utils.h"
|
|
#include "test-wmc-com.h"
|
|
|
|
typedef struct {
|
|
gpointer com_data;
|
|
} TestData;
|
|
|
|
#if GLIB_CHECK_VERSION(2,25,12)
|
|
typedef GTestFixtureFunc TCFunc;
|
|
#else
|
|
typedef void (*TCFunc)(void);
|
|
#endif
|
|
|
|
#define TESTCASE(t, d) g_test_create_case (#t, 0, d, NULL, (TCFunc) t, NULL)
|
|
|
|
static TestData *
|
|
test_data_new (const char *port, gboolean uml290, gboolean debug)
|
|
{
|
|
TestData *d;
|
|
|
|
d = g_malloc0 (sizeof (TestData));
|
|
g_assert (d);
|
|
|
|
if (port)
|
|
d->com_data = test_com_setup (port, uml290, debug);
|
|
|
|
return d;
|
|
}
|
|
|
|
static void
|
|
test_data_free (TestData *d)
|
|
{
|
|
if (d->com_data)
|
|
test_com_teardown (d->com_data);
|
|
|
|
g_free (d);
|
|
}
|
|
|
|
int main (int argc, char **argv)
|
|
{
|
|
GTestSuite *suite;
|
|
TestData *data;
|
|
int i;
|
|
const char *port = NULL;
|
|
gint result;
|
|
gboolean uml290 = FALSE, debug = FALSE;
|
|
|
|
g_test_init (&argc, &argv, NULL);
|
|
|
|
/* See if we got passed a serial port for live testing */
|
|
for (i = 0; i < argc; i++) {
|
|
if (!strcmp (argv[i], "--port")) {
|
|
/* Make sure there's actually a port in the next arg */
|
|
g_assert (argc > i + 1);
|
|
port = argv[++i];
|
|
} else if (!strcmp (argv[i], "--uml290"))
|
|
uml290 = TRUE;
|
|
else if (!strcmp (argv[i], "--debug"))
|
|
debug = TRUE;
|
|
}
|
|
|
|
data = test_data_new (port, uml290, debug);
|
|
|
|
suite = g_test_get_root ();
|
|
g_test_suite_add (suite, TESTCASE (test_crc16_1, NULL));
|
|
g_test_suite_add (suite, TESTCASE (test_crc16_2, NULL));
|
|
g_test_suite_add (suite, TESTCASE (test_escape1, NULL));
|
|
g_test_suite_add (suite, TESTCASE (test_escape2, NULL));
|
|
g_test_suite_add (suite, TESTCASE (test_escape_ctrl, NULL));
|
|
g_test_suite_add (suite, TESTCASE (test_escape_unescape, NULL));
|
|
g_test_suite_add (suite, TESTCASE (test_escape_unescape_ctrl, NULL));
|
|
g_test_suite_add (suite, TESTCASE (test_utils_decapsulate_basic_buffer, NULL));
|
|
g_test_suite_add (suite, TESTCASE (test_utils_encapsulate_basic_buffer, NULL));
|
|
g_test_suite_add (suite, TESTCASE (test_utils_decapsulate_sierra_cns, NULL));
|
|
g_test_suite_add (suite, TESTCASE (test_utils_decapsulate_uml290_wmc1, NULL));
|
|
g_test_suite_add (suite, TESTCASE (test_utils_decapsulate_pc5740_wmc1, NULL));
|
|
|
|
/* Live tests */
|
|
if (port) {
|
|
g_test_suite_add (suite, TESTCASE (test_com_port_init, data->com_data));
|
|
g_test_suite_add (suite, TESTCASE (test_com_init, data->com_data));
|
|
g_test_suite_add (suite, TESTCASE (test_com_device_info, data->com_data));
|
|
g_test_suite_add (suite, TESTCASE (test_com_network_info, data->com_data));
|
|
g_test_suite_add (suite, TESTCASE (test_com_get_global_mode, data->com_data));
|
|
}
|
|
|
|
result = g_test_run ();
|
|
|
|
test_data_free (data);
|
|
|
|
return result;
|
|
}
|
|
|