static void TestDuplicateAndDeleteSet(void) // A test of the set duplication and deleting routines. { OSStatus err; CFStringRef currentSetID; CFStringRef newSetID; currentSetID = NULL; newSetID = NULL; err = MoreSCCopyCurrentSet(¤tSetID); if (err == noErr) { err = MoreSCDuplicateSet(currentSetID, CFSTR("Frog"), &newSetID); } if (err == noErr) { if (!gRunQuiet) { fprintf(stderr, "New set ID is "); CFShow(newSetID); } err = MoreSCDeleteSet(newSetID); } CFQRelease(currentSetID); CFQRelease(newSetID); PrintTestResult(err, NULL); }
static void TestRenameService(void) // A test of the MoreSCRenameService routine. { OSStatus err; CFArrayRef localServiceIDs; CFStringRef originalName; CFStringRef newName; CFStringRef serviceZero; localServiceIDs = NULL; originalName = NULL; newName = NULL; // Use NULL for the set ID to indicate that we're operating on // the current set. // // Can't use NULL for a service ID, so we have to come up with // a valid service ID first. We do this by choosing the first // service ID. err = MoreSCCopyServiceIDs(NULL, &localServiceIDs, NULL); if (err == noErr) { assert( CFArrayGetCount(localServiceIDs) > 0 ); serviceZero = (CFStringRef) CFArrayGetValueAtIndex(localServiceIDs, 0); err = MoreSCCopyUserVisibleNameOfService(NULL, serviceZero, &originalName); } if (err == noErr) { err = MoreSCRenameService(NULL, serviceZero, CFSTR("Frog")); } if (err == noErr) { err = MoreSCCopyUserVisibleNameOfService(NULL, serviceZero, &newName); } if (err == noErr) { if ( ! CFEqual(newName, CFSTR("Frog")) ) { fprintf(stderr, "*** newName isn't 'Frog'\n"); CFShow(newName); } err = MoreSCRenameService(NULL, serviceZero, originalName); } if (err == noErr) { CFQRelease(newName); newName = NULL; err = MoreSCCopyUserVisibleNameOfService(NULL, serviceZero, &newName); } if (err == noErr) { if ( ! CFEqual(newName, originalName) ) { fprintf(stderr, "*** newName isn't the same as originalName\n"); CFShow(newName); } } CFQRelease(localServiceIDs); CFQRelease(originalName); CFQRelease(newName); PrintTestResult(err, NULL); }
static void TestPortScanner(void) // A simple test of the port scanner code. This doesn't do a // lot of automated testing, but you can look at the results // and visually check them. { OSStatus err; CFArrayRef portArray; CFIndex portCount; CFIndex portIndex; long order; CFNumberRef supportsHold; portArray = NULL; err = MoreSCCreatePortArray(&portArray); if (err == noErr) { portCount = CFArrayGetCount(portArray); for (portIndex = 0; portIndex < portCount; portIndex++) { CFDictionaryRef thisPort; thisPort = (CFDictionaryRef) CFArrayGetValueAtIndex(portArray, portIndex); if (!gRunQuiet) { fprintf(stderr, "Port %ld\n", portIndex); fprintf(stderr, " device = "); CFShow(CFDictionaryGetValue(thisPort, kSCPropNetInterfaceDeviceName)); fprintf(stderr, " name = "); CFShow(CFDictionaryGetValue(thisPort, kSCPropUserDefinedName)); fprintf(stderr, " hardware = "); CFShow(CFDictionaryGetValue(thisPort, kSCPropNetInterfaceHardware)); fprintf(stderr, " variant = "); CFShow(CFDictionaryGetValue(thisPort, kMoreSCPropNetInterfaceHardwareVariant)); fprintf(stderr, " type = "); CFShow(CFDictionaryGetValue(thisPort, kSCPropNetInterfaceType)); fprintf(stderr, " subtype = "); CFShow(CFDictionaryGetValue(thisPort, kSCPropNetInterfaceSubType)); fprintf(stderr, " MAC = "); CFShow(CFDictionaryGetValue(thisPort, kSCPropMACAddress)); (void) CFNumberGetValue((CFNumberRef) CFDictionaryGetValue(thisPort, CFSTR("SortOrder")), kCFNumberLongType, &order); supportsHold = (CFNumberRef) CFDictionaryGetValue(thisPort, kSCPropNetInterfaceSupportsModemOnHold); if (supportsHold != NULL) { long hold; CFNumberGetValue(supportsHold, kCFNumberLongType, &hold); fprintf(stderr, " hold = %ld\n", hold); } fprintf(stderr, " sort = %ld\n", order); } } } CFQRelease(portArray); PrintTestResult(err, NULL); }
static void TestCopySetsDict(void) // A test of the MoreSCCopySetsDict routine, which proved key // in tracking down a reference count leak. { OSStatus err; CFDictionaryRef setsDict; setsDict = NULL; err = MoreSCCopySetsDict(&setsDict); CFQRelease(setsDict); PrintTestResult(err, NULL); }
static void TestRenameSet(void) // A test of the MoreSCRenameSet routine. { OSStatus err; CFStringRef currentSetID; CFStringRef originalName; CFStringRef newName; currentSetID = NULL; originalName = NULL; newName = NULL; err = MoreSCCopyCurrentSet(¤tSetID); if (err == noErr) { err = MoreSCCopyUserVisibleNameOfSet(currentSetID, &originalName); } if (err == noErr) { err = MoreSCRenameSet(currentSetID, CFSTR("Frog")); } if (err == noErr) { err = MoreSCCopyUserVisibleNameOfSet(currentSetID, &newName); } if (err == noErr) { if ( ! CFEqual(newName, CFSTR("Frog")) ) { fprintf(stderr, "*** newName isn't 'Frog'\n"); CFShow(newName); } err = MoreSCRenameSet(currentSetID, originalName); } if (err == noErr) { CFQRelease(newName); newName = NULL; err = MoreSCCopyUserVisibleNameOfSet(currentSetID, &newName); } if (err == noErr) { if ( ! CFEqual(newName, originalName) ) { fprintf(stderr, "*** newName isn't the same as originalName\n"); CFShow(newName); } } CFQRelease(currentSetID); CFQRelease(originalName); CFQRelease(newName); PrintTestResult(err, NULL); }
static void TestServiceEnumerate(void) // A test of the service enumeration routines. { OSStatus err; ItemCount serviceCount; ItemCount serviceIndex; CFArrayRef localServiceIDs; CFArrayRef resolvedServiceIDs; localServiceIDs = NULL; resolvedServiceIDs = NULL; err = MoreSCCopyServiceIDs(NULL, &localServiceIDs, &resolvedServiceIDs); if (err == noErr) { serviceCount = CFArrayGetCount(localServiceIDs); for (serviceIndex = 0; serviceIndex < serviceCount; serviceIndex++) { CFStringRef userVisible; Boolean active; userVisible = NULL; err = MoreSCCopyUserVisibleNameOfService(NULL, (CFStringRef) CFArrayGetValueAtIndex(localServiceIDs, serviceIndex), &userVisible); if (err == noErr) { err = MoreSCIsServiceActive(NULL, (CFStringRef) CFArrayGetValueAtIndex(localServiceIDs, serviceIndex), &active); } if (err == noErr && !gRunQuiet) { fprintf(stderr, "#%ld %c ", serviceIndex, (active) ? ' ' : 'X'); CFShow(userVisible); CFShow(CFArrayGetValueAtIndex(localServiceIDs, serviceIndex)); CFShow(CFArrayGetValueAtIndex(resolvedServiceIDs, serviceIndex)); } CFQRelease(userVisible); if (err != noErr) { break; } } } CFQRelease(localServiceIDs); CFQRelease(resolvedServiceIDs); PrintTestResult(err, NULL); }
static void TestAppleTalk(void) // A routine to test the AppleTalk on/off routines. { OSStatus err; Boolean originalState; Boolean newState; err = MoreSCIsAppleTalkActive(NULL, &originalState); if (err == noErr && !gRunQuiet) { fprintf(stderr, "AppleTalk is %s.\n", originalState ? "active" : "inactive"); } if (err == noErr) { err = MoreSCSetAppleTalkActive(NULL, !originalState); } if (err == noErr) { err = MoreSCIsAppleTalkActive(NULL, &newState); } if (err == noErr) { if (!gRunQuiet) { fprintf(stderr, "AppleTalk is now %s.\n", newState ? "active" : "inactive"); } if (newState != !originalState) { fprintf(stderr, "*** Failed to change state.\n"); } } if (err == noErr) { err = MoreSCSetAppleTalkActive(NULL, originalState); } if (err == noErr) { err = MoreSCIsAppleTalkActive(NULL, &newState); } if (err == noErr) { if (!gRunQuiet) { fprintf(stderr, "AppleTalk is now %s.\n", newState ? "active" : "inactive"); } if (newState != originalState) { fprintf(stderr, "*** Failed to restore state.\n"); } } PrintTestResult(err, NULL); }
static void TestCreateSet(void) // A routine to test the set creation and deletion code. // It compares the newly created set against a set called // "DefaultLocationForMoreSCFTest" to ensure that the set // created by MoreSCF matches a set created by the control // panel. { OSStatus err; OSStatus err2; CFStringRef newSetID; CFStringRef templateSetID; newSetID = NULL; templateSetID = NULL; err = MoreSCFindSetByUserVisibleNameAndCopyID(CFSTR(kDefaultLocationName), &templateSetID); if (err != noErr || templateSetID == NULL) { fprintf(stderr, "*** TestCreateSet requires that you create a default set named '%s' using the Network preferences panel.\n", kDefaultLocationName); err = -1; } if (err == noErr) { err = MoreSCNewSet(CFSTR("Frog"), &newSetID); } if (err == noErr) { if (!gRunQuiet) { fprintf(stderr, "New set ID is "); CFShow(newSetID); } err = CompareSets(newSetID, templateSetID); err2 = MoreSCDeleteSet(newSetID); if (err == noErr) { err = err2; } } CFQRelease(newSetID); CFQRelease(templateSetID); PrintTestResult(err, NULL); }
static void TestEnumerateEntities(void) // A test of the MoreSCCopyEntities routine. { OSStatus err; CFArrayRef localServiceIDs; ItemCount entityCount; ItemCount entityIndex; CFArrayRef protocols; CFArrayRef values; // Use NULL for the set ID to indicate that we're operating on // the current set. // // Can't use NULL for a service ID, so we have to come up with // a valid service ID first. We do this by choosing the first // service ID. localServiceIDs = NULL; protocols = NULL; values = NULL; err = MoreSCCopyServiceIDs(NULL, &localServiceIDs, NULL); if (err == noErr) { assert(CFArrayGetCount(localServiceIDs) > 0); err = MoreSCCopyEntities(NULL, (CFStringRef) CFArrayGetValueAtIndex(localServiceIDs, 0), &protocols, &values); } if (err == noErr && !gRunQuiet) { entityCount = CFArrayGetCount(protocols); for (entityIndex = 0; entityIndex < entityCount; entityIndex++) { fprintf(stderr, "#%ld ", entityIndex); CFShow(CFArrayGetValueAtIndex(protocols, entityIndex)); CFShow(CFArrayGetValueAtIndex(values, entityIndex)); } } CFQRelease(localServiceIDs); CFQRelease(protocols); CFQRelease(values); PrintTestResult(err, NULL); }
static void TestDuplicateAndDeleteService(void) // A test of the service duplication and deleting routines. { OSStatus err; CFArrayRef localServiceIDs; CFStringRef newServiceID; newServiceID = NULL; localServiceIDs = NULL; // Use NULL for the set ID to indicate that we're operating on // the current set. // // Can't use NULL for a service ID, so we have to come up with // a valid service ID first. We do this by choosing the first // service ID. err = MoreSCCopyServiceIDs(NULL, &localServiceIDs, NULL); if (err == noErr) { assert( CFArrayGetCount(localServiceIDs) > 0 ); err = MoreSCDuplicateService(NULL, (CFStringRef) CFArrayGetValueAtIndex(localServiceIDs, 0), CFSTR("Frog"), &newServiceID); } if (err == noErr) { if (!gRunQuiet) { fprintf(stderr, "New service ID is "); CFShow(newServiceID); } err = MoreSCDeleteService(NULL, newServiceID); } CFQRelease(localServiceIDs); CFQRelease(newServiceID); PrintTestResult(err, NULL); }
// --------------------------------------------------------------------------- // CStunTurnTests::DoRunInterfaceTestsL // // --------------------------------------------------------------------------- // void CStunTurnTests::DoRunStunTurnTestsL() { TInt err( KErrNone ); iConsole.Printf( _L("Create session test") ); RDebug::Print( _L("\n\nNAT_TEST_START: Create session") ); //__UHEAP_MARK; TRAP( err, TestCreateSessionL() ); //__UHEAP_MARKEND; RDebug::Print( _L("\nNAT_TEST_STOP: Create session, ERR: %d"), err ); PrintTestResult( err ); err = KErrNone; RDebug::Print( _L("\n\nNAT_TEST_START: Create stream") ); iConsole.Printf( _L("Create stream test") ); __UHEAP_MARK; TRAP( err, TestCreateStreamL() ); RDebug::Print( _L("\nNAT_TEST_STOP: Create stream, ERR: %d"), err ); PrintTestResult( err ); __UHEAP_MARKEND; err = KErrNone; RDebug::Print( _L("\n\nNAT_TEST_START: Create wrapper") ); iConsole.Printf( _L("Create wrapper test") ); __UHEAP_MARK; TRAP( err, TestCreateWrapperL() ); RDebug::Print( _L("\nNAT_TEST_STOP: Create wrapper, ERR: %d"), err ); PrintTestResult( err ); __UHEAP_MARKEND; err = KErrNone; RDebug::Print( _L("\n\nNAT_TEST_START: Set incoming Address to wrapper") ); iConsole.Printf( _L("Set Incoming Address to wrapper test") ); __UHEAP_MARK; TRAP( err, SetupTestL() ); if ( !err ) { __UHEAP_MARK; TRAP( err, TestSetIncomingAddrL() ); __UHEAP_MARKEND; TeardownTest(); } else { RDebug::Print( _L("\nTEST PRINT: Setup fails, ERR: %d"), err ); } RDebug::Print( _L("\nNAT_TEST_STOP: Set incoming Address to wrapper, ERR: %d"), err ); PrintTestResult( err ); __UHEAP_MARKEND; err = KErrNone; RDebug::Print( _L("\n\nNAT_TEST_START: Outgoing address") ); iConsole.Printf( _L("Get outgoing address from wrapper test") ); __UHEAP_MARK; TRAP( err, SetupTestL() ); if ( !err ) { __UHEAP_MARK; TRAP( err, TestOutgoingAddrL() ); __UHEAP_MARKEND; TeardownTest(); } else { RDebug::Print( _L("\nTEST PRINT: Setup fails, ERR: %d"), err ); } RDebug::Print( _L("\nNAT_TEST_STOP: Outgoing address, ERR: %d"), err ); PrintTestResult( err ); __UHEAP_MARKEND; err = KErrNone; RDebug::Print( _L("\n\nNAT_TEST_START: Fetch candidate") ); iConsole.Printf( _L("Fetch Candidate test") ); __UHEAP_MARK; TRAP( err, TestFetchCandidateL() ); RDebug::Print( _L("\nNAT_TEST_STOP: Fetch candidate, ERR: %d"), err ); PrintTestResult( err ); __UHEAP_MARKEND; err = KErrNone; RDebug::Print( _L("\n\nNAT_TEST_START: Fetch candidate: wrong server address") ); iConsole.Printf( _L("Fetch Candidate wrong server address test") ); __UHEAP_MARK; TRAP( err, SetupWrongServerAddressTestL() ); if ( !err ) { __UHEAP_MARK; TRAP( err, TestFetchCandidateL() ); __UHEAP_MARKEND; } else { RDebug::Print( _L("\nTEST PRINT: Setup fails, ERR: %d"), err ); } TeardownWrongServerAddressTest(); RDebug::Print( _L("\nNAT_TEST_STOP: Fetch candidate wrong server address, ERR: %d"), err ); PrintTestResult( err ); __UHEAP_MARKEND; err = KErrNone; RDebug::Print( _L("\n\nNAT_TEST_START: Set sending status ") ); iConsole.Printf( _L("Set Sending Status test") ); __UHEAP_MARK; TRAP( err, SetupTest2L() ); if ( !err ) { __UHEAP_MARK; if ( KProtocolInetUdp == iProtocol ) { TRAP( err, TestSetSendingStatusUDPL() ); } else { TRAP( err, TestSetSendingStatusTCPL() ); } __UHEAP_MARKEND; } else { RDebug::Print( _L("\nTEST PRINT: Setup fails, ERR: %d"), err ); } TeardownTest(); RDebug::Print( _L("\nNAT_TEST_STOP: Set sending status, ERR: %d"), err ); PrintTestResult( err ); __UHEAP_MARKEND; err = KErrNone; RDebug::Print( _L("\n\nNAT_TEST_START: Set receiving status") ); iConsole.Printf( _L("Set Receiving Status test") ); __UHEAP_MARK; TRAP( err, SetupTest2L() ); if ( !err ) { __UHEAP_MARK; if ( KProtocolInetUdp == iProtocol ) { TRAP( err, TestSetReceivingStatusUDPL() ); } else { TRAP( err, TestSetReceivingStatusTCPL() ); } __UHEAP_MARKEND; TeardownTest(); } else { RDebug::Print( _L("\nTEST PRINT: Setup fails, ERR: %d"), err ); } RDebug::Print( _L("\nNAT_TEST_STOP: Set receiving status, ERR: %d"), err ); PrintTestResult( err ); __UHEAP_MARKEND; }
static void TestISP(void) // A routine to test the ISP support routines. { OSStatus err; CFStringRef setID; CFStringRef setID2; CFStringRef newSetID; setID = NULL; setID2 = NULL; newSetID = NULL; err = MoreSCFindSetByUserVisibleNameAndCopyID(CFSTR(kDefaultLocationName), &setID); if (err == noErr) { if (setID == NULL) { fprintf(stderr, "*** Couldn't find the set '%s'\n", kDefaultLocationName); } else if (!gRunQuiet) { fprintf(stderr, "Set ID for '%s' is\n", kDefaultLocationName); CFShow(setID); } } if (err == noErr) { err = MoreSCFindSetByUserVisibleNameAndCopyID(CFSTR("Who would give a set such a silly name"), &setID2); if (setID2 != NULL) { fprintf(stderr, "*** Found set that shouldn't exist\n"); } } if (err == noErr) { MoreSCPPPDigest ppp; BlockZero(&ppp, sizeof(ppp)); ppp.active = true; ppp.authName = CFSTR("Quinn"); ppp.authPassword = CFSTR("eskimo"); ppp.commRemoteAddress = CFSTR("123 4567"); err = MoreSCMakeNewDialupSet(NULL, CFSTR("Frog PPP"), NULL, &ppp, NULL, NULL, &newSetID); } if (err == noErr) { err = MoreSCDeleteSet(newSetID); } CFQRelease(newSetID); newSetID = NULL; PrintTestResult(err, "dialup"); err = noErr; if (err == noErr) { MoreSCPPPDigest ppp; BlockZero(&ppp, sizeof(ppp)); ppp.active = true; ppp.authName = CFSTR("Quinn"); ppp.authPassword = CFSTR("eskimo"); err = MoreSCMakeNewPPPoESet(NULL, CFSTR("Frog PPPoE"), &ppp, NULL, NULL, &newSetID); } if (err == noErr) { err = MoreSCDeleteSet(newSetID); } CFQRelease(setID); CFQRelease(setID2); CFQRelease(newSetID); PrintTestResult(err, "PPPoE"); }
static void TestSetEnumerationAndSwitch(void) // A test of set enumeration and switching routines. { OSStatus err; CFIndex setCount; CFIndex setIndex; CFArrayRef setIDs; CFIndex indexOfCurrentSet; setIDs = NULL; // Enumeration err = MoreSCCopySetIDs(&setIDs, &indexOfCurrentSet); if (err == noErr) { setCount = CFArrayGetCount(setIDs); for (setIndex = 0; setIndex < setCount; setIndex++) { CFStringRef userVis; userVis = NULL; err = MoreSCCopyUserVisibleNameOfSet( (CFStringRef) CFArrayGetValueAtIndex(setIDs, setIndex), &userVis); if (err == noErr && !gRunQuiet) { fprintf(stderr, "#%ld %c ", setIndex, (setIndex == indexOfCurrentSet) ? '*' : ' '); CFShow(userVis); CFShow(CFArrayGetValueAtIndex(setIDs, setIndex)); } CFQRelease(userVis); if (err != noErr) { break; } } } if (err == noErr) { CFStringRef currentSetID; currentSetID = NULL; err = MoreSCCopyCurrentSet(¤tSetID); if (err == noErr && !gRunQuiet) { fprintf(stderr, "Current set ID is "); CFShow(currentSetID); } CFQRelease(currentSetID); } // Switch if (err == noErr) { ItemCount newSet; if (indexOfCurrentSet == 0) { newSet = 1; } else { newSet = 0; } err = MoreSCSetCurrentSet( (CFStringRef) CFArrayGetValueAtIndex(setIDs, newSet)); if (err == noErr) { err = MoreSCSetCurrentSet( (CFStringRef) CFArrayGetValueAtIndex(setIDs, indexOfCurrentSet)); } } CFQRelease(setIDs); PrintTestResult(err, NULL); }