Test arguments parses the command line arguments given to the testrunner
示例#1
0
        /// <summary>
        /// This runs the tests by recompiling all tests in the specified
        /// source directory.
        /// </summary>
        /// <param name="args">TestRunner arguments</param>
        private static void CompileAndRunTests(TestArguments args)
        {
            string sSource  = args.TestDirectory;
            string sData    = args.TestDataDirectory;
            string sLibrary = args.ManagedLibrary;

            if (!Directory.Exists(sSource))
            {
                Console.WriteLine("Source Directory does not exist" + Environment.NewLine);
                PrintUsageAndExit();
            }

            if (!Directory.Exists(sData))
            {
                Console.WriteLine("Data Directory does not exist" + Environment.NewLine);
                PrintUsageAndExit();
            }

            if (!File.Exists(sLibrary))
            {
                Console.WriteLine("libsbml C# binding assembly does not exist." + Environment.NewLine);
                PrintUsageAndExit();
            }

            // all seems well so let us run through the tests:
            Console.WriteLine("Running the tests with: ");
            Console.WriteLine("\tSource Directory: " + sSource);
            Console.WriteLine("\tData Directory:   " + sData);
            Console.WriteLine("\tC# binding:       " + sLibrary);
            Console.WriteLine();

            RunTests(sLibrary, sSource, sData);
        }
示例#2
0
        /// <summary>
        /// This runs all tests in the 'LibSBMLCSTest' namespace, which
        /// presumably are included in this assembly.
        /// </summary>
        /// <param name="args">TestRunner arguments</param>
        private static void RunTestsInNamespace(TestArguments args)
        {
            string sData = args.TestDataDirectory;

            if (!Directory.Exists(sData))
            {
                Console.WriteLine("Data Directory does not exist" + Environment.NewLine);
                Environment.Exit(-1);
            }


            // all seems well so let us run through the tests:
            Console.WriteLine("Running the tests with: ");
            Console.WriteLine("\tData Directory:   " + sData);
            Console.WriteLine();

            RunTestsInAssembly(Assembly.GetExecutingAssembly(), sData);

            Console.WriteLine(Environment.NewLine);
            Console.WriteLine(String.Format("Total Number of Tests {0}, failures {1}",
                                            nTestFunc, nFailureSum));
            if (nFailureSum == 0)
            {
                Console.WriteLine("\nAll tests passed." + Environment.NewLine);
                return;
            }

            PrintErrors();
            Environment.Exit(1);
        }
示例#3
0
        /// <summary>
        /// This runs all tests in the 'LibSBMLCSTest' namespace, which 
        /// presumably are included in this assembly. 
        /// </summary>
        /// <param name="args">TestRunner arguments</param>
        private static void RunTestsInNamespace(TestArguments args)
        {
            string sData = args.TestDataDirectory;

            if (!Directory.Exists(sData))
            {
                Console.WriteLine("Data Directory does not exist" + Environment.NewLine);
                Environment.Exit(-1);
            }

            // all seems well so let us run through the tests:
            Console.WriteLine("Running the tests with: ");
            Console.WriteLine("\tData Directory:   " + sData);
            Console.WriteLine();

            RunTestsInAssembly(Assembly.GetExecutingAssembly(), sData);

            Console.WriteLine(Environment.NewLine);
            Console.WriteLine(String.Format("Total Number of Tests {0}, failures {1}",
                                 nTestFunc, nFailureSum));
            if (nFailureSum == 0)
            {
                Console.WriteLine("\nAll tests passed." + Environment.NewLine);
                return;
            }

            PrintErrors();
            Environment.Exit(1);
        }
示例#4
0
        static void Main(string[] args)
        {
            TestArguments arguments = new TestArguments(args);
            if (arguments.HaveAdditionalPath)
            {
                ProcessStartInfo info = new ProcessStartInfo(
                                    new FileInfo(Assembly.GetEntryAssembly().Location).FullName,
                                    arguments.StrippedArgs()
                                    );
                info.UseShellExecute = false;
                info.EnvironmentVariables["PATH"] = arguments.AdditionalPath + ";" + info.EnvironmentVariables["PATH"];
                info.EnvironmentVariables["LD_LIBRARY_PATH"] = arguments.AdditionalPath + ":" + info.EnvironmentVariables["LD_LIBRARY_PATH"];
                info.EnvironmentVariables["DYLD_LIBRARY_PATH"] = arguments.AdditionalPath + ":" + info.EnvironmentVariables["DYLD_LIBRARY_PATH"];
                Process.Start(info);
                return;
            }

            Console.WriteLine("LibSBML C# Testrunner");
            Console.WriteLine("=====================");

            if (!arguments.IsValid)
            {
                // for backwards compatibility
                if (args.Length == 1 )
                {
                    arguments = new TestArguments();
                    arguments.TestDataDirectory = args[0];
                }
                else if (args.Length == 3)
                {
                    arguments = new TestArguments();
                    arguments.TestDirectory = args[0];
                    arguments.TestDataDirectory = args[1];
                    arguments.ManagedLibrary = args[2];
                }

                if (!arguments.IsValid)
                {
                    PrintUsageAndExit();
                }
            }

            if (arguments.HaveWorkingDirectory)
                Directory.SetCurrentDirectory(arguments.WorkingDirectory);

            if (File.Exists(arguments.ManagedLibrary))
                AppDomain.CurrentDomain.AssemblyResolve += delegate(object s, ResolveEventArgs e)
                                                           {
                                                               string filename = new AssemblyName(e.Name).Name;
                                                               string path = string.Format(@"{0}.dll", Path.Combine(new FileInfo(arguments.ManagedLibrary).DirectoryName, filename));
                                                               return Assembly.LoadFrom(path);
                                                           };

            if (arguments.UseCompiledTests)
            {
                RunTestsInNamespace(arguments);
            }
            else
            {
                CompileAndRunTests(arguments);
            }

            if (arguments.HaveAdditionalDirectories)
            {
                Console.WriteLine();
                Console.WriteLine("AdditionalTests");
                Console.WriteLine("===============");
                Console.WriteLine();

                foreach (string path in arguments.AdditionalTestDirectories)
                {
                    Console.WriteLine("running tests from: " + path);
                    Console.WriteLine();
                    RunTests(arguments.ManagedLibrary, path, arguments.TestDataDirectory);
                    Console.WriteLine();
                }
            }
        }
示例#5
0
        /// <summary>
        /// This runs the tests by recompiling all tests in the specified
        /// source directory.
        /// </summary>
        /// <param name="args">TestRunner arguments</param>
        private static void CompileAndRunTests(TestArguments args)
        {
            string sSource = args.TestDirectory;
            string sData = args.TestDataDirectory;
            string sLibrary = args.ManagedLibrary;

            if (!Directory.Exists(sSource))
            {
                Console.WriteLine("Source Directory does not exist" + Environment.NewLine);
                PrintUsageAndExit();
            }

            if (!Directory.Exists(sData))
            {
                Console.WriteLine("Data Directory does not exist" + Environment.NewLine);
                PrintUsageAndExit();
            }

            if (!File.Exists(sLibrary))
            {
                Console.WriteLine("libsbml C# binding assembly does not exist." + Environment.NewLine);
                PrintUsageAndExit();
            }

            // all seems well so let us run through the tests:
            Console.WriteLine("Running the tests with: ");
            Console.WriteLine("\tSource Directory: " + sSource);
            Console.WriteLine("\tData Directory:   " + sData);
            Console.WriteLine("\tC# binding:       " + sLibrary);
            Console.WriteLine();

            RunTests(sLibrary, sSource, sData);
        }
示例#6
0
        static void Main(string[] args)
        {
            TestArguments arguments = new TestArguments(args);

            if (arguments.HaveAdditionalPath)
            {
                ProcessStartInfo info = new ProcessStartInfo(
                    new FileInfo(Assembly.GetEntryAssembly().Location).FullName,
                    arguments.StrippedArgs()
                    );
                info.UseShellExecute = false;
                info.EnvironmentVariables["PATH"]              = arguments.AdditionalPath + ";" + info.EnvironmentVariables["PATH"];
                info.EnvironmentVariables["LD_LIBRARY_PATH"]   = arguments.AdditionalPath + ":" + info.EnvironmentVariables["LD_LIBRARY_PATH"];
                info.EnvironmentVariables["DYLD_LIBRARY_PATH"] = arguments.AdditionalPath + ":" + info.EnvironmentVariables["DYLD_LIBRARY_PATH"];
                Process.Start(info);
                return;
            }

            Console.WriteLine("LibSBML C# Testrunner");
            Console.WriteLine("=====================");


            if (!arguments.IsValid)
            {
                // for backwards compatibility
                if (args.Length == 1)
                {
                    arguments = new TestArguments();
                    arguments.TestDataDirectory = args[0];
                }
                else if (args.Length == 3)
                {
                    arguments = new TestArguments();
                    arguments.TestDirectory     = args[0];
                    arguments.TestDataDirectory = args[1];
                    arguments.ManagedLibrary    = args[2];
                }

                if (!arguments.IsValid)
                {
                    PrintUsageAndExit();
                }
            }

            if (arguments.HaveWorkingDirectory)
            {
                Directory.SetCurrentDirectory(arguments.WorkingDirectory);
            }

            if (File.Exists(arguments.ManagedLibrary))
            {
                AppDomain.CurrentDomain.AssemblyResolve += delegate(object s, ResolveEventArgs e)
                {
                    string filename = new AssemblyName(e.Name).Name;
                    string path     = string.Format(@"{0}.dll", Path.Combine(new FileInfo(arguments.ManagedLibrary).DirectoryName, filename));
                    return(Assembly.LoadFrom(path));
                }
            }
            ;

            if (arguments.UseCompiledTests)
            {
                RunTestsInNamespace(arguments);
            }
            else
            {
                CompileAndRunTests(arguments);
            }


            if (arguments.HaveAdditionalDirectories)
            {
                Console.WriteLine();
                Console.WriteLine("AdditionalTests");
                Console.WriteLine("===============");
                Console.WriteLine();

                foreach (string path in arguments.AdditionalTestDirectories)
                {
                    Console.WriteLine("running tests from: " + path);
                    Console.WriteLine();
                    RunTests(arguments.ManagedLibrary, path, arguments.TestDataDirectory);
                    Console.WriteLine();
                }
            }
        }
        static void Main(string[] args)
        {
            Console.WriteLine("LibSBML C# Testrunner");
            Console.WriteLine("=====================");

            TestArguments arguments = new TestArguments(args);

            if (!arguments.IsValid)
            {
                // for backwards compatibility
                if (args.Length == 1 )
                {
                    arguments = new TestArguments();
                    arguments.TestDataDirectory = args[0];
                }
                else if (args.Length == 3)
                {
                    arguments = new TestArguments();
                    arguments.TestDirectory = args[0];
                    arguments.TestDataDirectory = args[1];
                    arguments.ManagedLibrary = args[2];
                }

                if (!arguments.IsValid)
                {
                    PrintUsageAndExit();
                }
            }

            if (arguments.HaveWorkingDirectory)
                Directory.SetCurrentDirectory(arguments.WorkingDirectory);

            if (arguments.UseCompiledTests)
            {
                RunTestsInNamespace(arguments);
            }
            else
            {
                CompileAndRunTests(arguments);
            }

            if (arguments.HaveAdditionalDirectories)
            {
                Console.WriteLine();
                Console.WriteLine("AdditionalTests");
                Console.WriteLine("===============");
                Console.WriteLine();

                foreach (string path in arguments.AdditionalTestDirectories)
                {
                    Console.WriteLine("running tests from: " + path);
                    Console.WriteLine();
                    RunTests(arguments.ManagedLibrary, path, arguments.TestDataDirectory);
                    Console.WriteLine();
                }
            }
        }