Rework liblinphone_tester for Windows 10 to have cunit output in the logs.

This commit is contained in:
Ghislain MARY 2015-10-05 12:08:19 +02:00
parent 205bf11aa4
commit 5f612d8396
3 changed files with 33 additions and 29 deletions

View file

@ -37,12 +37,15 @@ namespace liblinphone_tester
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
LibLinphoneTester.Instance.setWritableDirectory(ApplicationData.Current.LocalFolder);
_suites = UnitTestDataSource.GetSuites(LibLinphoneTester.Instance);
if ((e.Parameter is Uri) && (e.Parameter.ToString().Equals("liblinphone-tester:autolaunch")))
{
AutoLaunch();
}
else
{
LibLinphoneTester.Instance.initialize(ApplicationData.Current.LocalFolder, true);
_suites = UnitTestDataSource.GetSuites(LibLinphoneTester.Instance);
}
}
public IEnumerable<UnitTestSuite> Suites
@ -181,6 +184,7 @@ namespace liblinphone_tester
CommandBar.IsEnabled = false;
ProgressIndicator.IsIndeterminate = true;
ProgressIndicator.IsEnabled = true;
LibLinphoneTester.Instance.initialize(ApplicationData.Current.LocalFolder, false);
LibLinphoneTester.Instance.runAllToXml();
if (LibLinphoneTester.Instance.AsyncAction != null)
{

View file

@ -53,8 +53,6 @@ static void libLinphoneNativeOutputTraceHandler(OrtpLogLevel lev, const char *fm
LibLinphoneTester::LibLinphoneTester()
{
liblinphone_tester_init(nativeOutputTraceHandler);
bc_tester_set_resource_dir_prefix("Assets");
}
LibLinphoneTester::~LibLinphoneTester()
@ -62,26 +60,34 @@ LibLinphoneTester::~LibLinphoneTester()
liblinphone_tester_uninit();
}
void LibLinphoneTester::setWritableDirectory(StorageFolder^ folder)
{
char writable_dir[MAX_WRITABLE_DIR_SIZE] = { 0 };
const wchar_t *wwritable_dir = folder->Path->Data();
wcstombs(writable_dir, wwritable_dir, sizeof(writable_dir));
bc_tester_set_writable_dir_prefix(writable_dir);
}
void LibLinphoneTester::setOutputTraceListener(OutputTraceListener^ traceListener)
{
sTraceListener = traceListener;
}
void LibLinphoneTester::init(bool verbose)
void LibLinphoneTester::initialize(StorageFolder^ writableDirectory, Platform::Boolean ui)
{
if (verbose) {
if (ui) {
liblinphone_tester_init(nativeOutputTraceHandler);
} else {
liblinphone_tester_init(NULL);
linphone_core_set_log_level_mask((OrtpLogLevel)(ORTP_MESSAGE | ORTP_WARNING | ORTP_ERROR | ORTP_FATAL));
}
else {
linphone_core_set_log_level_mask(ORTP_FATAL);
char writable_dir[MAX_WRITABLE_DIR_SIZE] = { 0 };
const wchar_t *wwritable_dir = writableDirectory->Path->Data();
wcstombs(writable_dir, wwritable_dir, sizeof(writable_dir));
bc_tester_set_writable_dir_prefix(writable_dir);
bc_tester_set_resource_dir_prefix("Assets");
if (!ui) {
char *xmlFile = bc_tester_file("LibLinphoneWindows10.xml");
char *args[] = { "--xml-file", xmlFile };
bc_tester_parse_args(2, args, 0);
char *logFile = bc_tester_file("LibLinphoneWindows10.log");
liblinphone_tester_set_log_file(logFile);
free(logFile);
}
}
@ -95,7 +101,12 @@ bool LibLinphoneTester::run(Platform::String^ suiteName, Platform::String^ caseN
wcstombs(csuitename, wssuitename.c_str(), sizeof(csuitename));
wcstombs(ccasename, wscasename.c_str(), sizeof(ccasename));
init(verbose);
if (verbose) {
linphone_core_set_log_level_mask((OrtpLogLevel)(ORTP_MESSAGE | ORTP_WARNING | ORTP_ERROR | ORTP_FATAL));
}
else {
linphone_core_set_log_level_mask(ORTP_FATAL);
}
linphone_core_set_log_handler(libLinphoneNativeOutputTraceHandler);
return bc_tester_run_tests(wssuitename == all ? 0 : csuitename, wscasename == all ? 0 : ccasename) != 0;
}
@ -103,18 +114,8 @@ bool LibLinphoneTester::run(Platform::String^ suiteName, Platform::String^ caseN
void LibLinphoneTester::runAllToXml()
{
auto workItem = ref new WorkItemHandler([this](IAsyncAction ^workItem) {
char *xmlFile = bc_tester_file("LibLinphoneWindows10.xml");
char *logFile = bc_tester_file("LibLinphoneWindows10.log");
char *args[] = { "--xml-file", xmlFile };
bc_tester_parse_args(2, args, 0);
init(true);
FILE *f = fopen(logFile, "w");
ortp_set_log_file(f);
bc_tester_start(NULL);
bc_tester_uninit();
fclose(f);
free(xmlFile);
free(logFile);
});
_asyncAction = ThreadPool::RunAsync(workItem);
}

View file

@ -14,12 +14,12 @@ namespace liblinphone_tester_runtime_component
public ref class LibLinphoneTester sealed
{
public:
void setWritableDirectory(Windows::Storage::StorageFolder^ folder);
void setOutputTraceListener(OutputTraceListener^ traceListener);
unsigned int nbTestSuites();
unsigned int nbTests(Platform::String^ suiteName);
Platform::String^ testSuiteName(int index);
Platform::String^ testName(Platform::String^ suiteName, int testIndex);
void initialize(Windows::Storage::StorageFolder^ writableDirectory, Platform::Boolean ui);
bool run(Platform::String^ suiteName, Platform::String^ caseName, Platform::Boolean verbose);
void runAllToXml();
@ -34,7 +34,6 @@ namespace liblinphone_tester_runtime_component
private:
LibLinphoneTester();
~LibLinphoneTester();
void init(bool verbose);
static LibLinphoneTester^ _instance;
Windows::Foundation::IAsyncAction^ _asyncAction;