int wlmEnableEVMTest(int enable, WLM_RATE rate, int channel) { int val[3] = {0}; val[1] = WLM_RATE_1M; /* default value */ if (enable) { val[0] = htod32(channel); val[1] = htod32(rate); wlmEnableAdapterUp(1); if (wlu_set(irh, WLC_OUT, NULL, 0) < 0) { printf("wlmEnableEVMTest: %s\n", wlmLastError()); return FALSE; } } if (wlu_set(irh, WLC_EVM, val, sizeof(val)) < 0) { printf("wlmEnableEVMTest: %s\n", wlmLastError()); return FALSE; } return TRUE; }
int wlmEnableCarrierTone(int enable, WLM_BAND band, int channel) { int val = channel; (void)band; if (!enable) { val = 0; } else { wlmEnableAdapterUp(1); if (wlu_set(irh, WLC_OUT, NULL, 0) < 0) { printf("wlmEnableCarrierTone: %s\n", wlmLastError()); return FALSE; } } val = htod32(val); if (wlu_set(irh, WLC_FREQ_ACCURACY, &val, sizeof(int)) < 0) { printf("wlmEnableCarrierTone: %s\n", wlmLastError()); return FALSE; } return TRUE; }
int main(int argc, char **argv) { WLM_DUT_INTERFACE dutInterface = WLM_DUT_LOCAL; char *interfaceName = 0; WLM_DUT_SERVER_PORT dutServerPort = WLM_DEFAULT_DUT_SERVER_PORT; WLM_DUT_OS dutOs = WLM_DUT_OS_WIN32; (void)argc; while (*++argv) { if (strncmp(*argv, "--help", strlen(*argv)) == 0) { printUsage(); exit(0); } if (strncmp(*argv, "--socket", strlen(*argv)) == 0) { int port; dutInterface = WLM_DUT_SOCKET; if (!*++argv) { printf("IP address required\n"); printUsage(); exit(-1); } interfaceName = *argv; if (*++argv && (sscanf(*argv, "%d", &port) == 1)) { dutServerPort = (WLM_DUT_SERVER_PORT)port; } else { /* optional parameter */ --argv; } } if (strncmp(*argv, "--serial", strlen(*argv)) == 0) { dutInterface = WLM_DUT_SERIAL; if (!*++argv) { printf("serial port required\n"); printUsage(); exit(-1); } interfaceName = *argv; } if (strncmp(*argv, "--wifi", strlen(*argv)) == 0) { dutInterface = WLM_DUT_WIFI; if (!*++argv) { printf("MAC address required\n"); printUsage(); exit(-1); } interfaceName = *argv; } if (strncmp(*argv, "--dongle", strlen(*argv)) == 0) { unsigned int i; char buffer[256]; dutInterface = WLM_DUT_DONGLE; if (!*++argv) { printf("COM port required\n"); printUsage(); exit(-1); } if (!(sscanf(*argv, "COM%u", &i) == 1 || sscanf(*argv, "/dev/tty%s", buffer) == 1)) { printf("serial port invalid\n"); printUsage(); exit(-1); } interfaceName = *argv; } if ((strncmp(*argv, "--linux", strlen(*argv)) == 0) || strncmp(*argv, "--linuxdut", strlen(*argv)) == 0) { dutOs = WLM_DUT_OS_LINUX; } } TEST_INITIALIZE(); TEST_FATAL(wlmApiInit(), "wlmApiInit failed"); TEST_FATAL(wlmSelectInterface(dutInterface, interfaceName, dutServerPort, dutOs), "wlmSelectInterface failed"); printf("\n"); switch (dutInterface) { case WLM_DUT_LOCAL: printf("Test running against local DUT.\n"); break; case WLM_DUT_SOCKET: printf("Test running over Ethernet to remote DUT IP=%s.\n", interfaceName); break; case WLM_DUT_SERIAL: printf("Test running over serial from port %s\n", interfaceName); break; case WLM_DUT_WIFI: printf("Test running over 802.11 to remote DUT MAC=%s.\n", interfaceName); break; case WLM_DUT_DONGLE: printf("Test running over serial from %s to remote dongle UART\n", interfaceName); break; default: printf("Invalid interface\n"); exit(-1); break; } switch (dutOs) { case WLM_DUT_OS_LINUX: printf("Test running against Linux DUT.\n"); break; case WLM_DUT_OS_WIN32: printf("Test running against Win32 DUT.\n"); break; default: printf("Invalid DUT OS\n"); exit(-1); break; } printf("\n"); /* packet engine requires MPC to be disabled and WLAN interface up */ TEST(wlmMinPowerConsumption(FALSE), "wlmMinPowerConsuption failed"); TEST(wlmEnableAdapterUp(TRUE), "wlmEnableAdapterUp failed"); /* invoke test cases */ testDutInit(); testVersion(); testTransmit(); testClientBatchingTransmit(); testServerBatchingTransmit(); testReceive(); testJoinNetworkNone(); testJoinNetworkWep(); testJoinNetworkWpaTkip(); testJoinNetworkWpaAes(); testJoinNetworkWpa2Tkip(); testJoinNetworkWpa2Aes(); TEST_FATAL(wlmApiCleanup(), "wlmApiCleanup failed"); TEST_FINALIZE(); return 0; }