public static int Main()

in AZ3166/jenkins/DevKitTestTool/Program.cs [27:144]


        public static int Main(string[] args)
        {
            Stopwatch watch = new Stopwatch();

            try
            {
                if (File.Exists(Constants.ExcludedTestsFileName))
                {
                    excludeTests = File.ReadAllLines(Constants.ExcludedTestsFileName).ToList();
                }

                resultFolderPath = Path.Combine(workspace, ConfigurationManager.AppSettings["ResultFolder"]);
                if (!Directory.Exists(resultFolderPath))
                {
                    Directory.CreateDirectory(resultFolderPath);
                }

                versionFile = Path.Combine(workspace, Constants.SystemVersionFileName);

                switch (args[0])
                {
                    case "GenerateVersion":
                        Console.WriteLine("Generate DevKit version.");
                        GenerateSystemVersion();
                        break;

                    case "RunUnitTests":
                        // Run test cases and generate report
                        Console.WriteLine("Run Check-in Test for IoT DevKit.");
                        watch.Start();

                        string logFilePath = Path.Combine(resultFolderPath, "DevKit_Unit_Test_Result.txt");
                        _listener = new SerialPortListener(port, logFilePath);
                        _listener.start();

                        string testCasePath = Path.Combine(workspace, ConfigurationManager.AppSettings["TestCaseRelativePath"]);
                        RunUnitTests(testCasePath);
                        Thread.Sleep(30 * 1000);
                        _listener.Stop();
                        watch.Stop();
                        Console.WriteLine($"DevKit unit test execution time: {watch.Elapsed.TotalMinutes} minutes");

                        Console.WriteLine("Generate test report");
                        GenerateReport("UnitTestReport", watch.Elapsed.Minutes, logFilePath);

                        if (unitTestResult.Where(kv => !string.Equals(kv.Value, "passed.", StringComparison.OrdinalIgnoreCase)).Count() > 0)
                        {
                            return 1;
                        }

                        break;

                    case "VerifyExamples":
                        Console.WriteLine("Verify the Examples for IoT DevKit.");
                        watch.Start();

                        string exampleFolderPath = Path.Combine(workspace, ConfigurationManager.AppSettings["ExampleFolderPath"]);
                        VerifyLibraryExamples(exampleFolderPath);

                        watch.Stop();
                        Console.WriteLine($"DevKit examples verification time: {watch.Elapsed.TotalMinutes} minutes.");

                        Console.WriteLine("Generate test report");
                        GenerateReport("ExampleReport", watch.Elapsed.Minutes);

                        if (examplesTestResult.Where(kv => !string.Equals(kv.Value, "succeed", StringComparison.OrdinalIgnoreCase)).Count() > 0)
                        {
                            return 1;
                        }

                        break;

                    case "GenerateArduinoPackage":
                        GenerateArduinoPackage();
                        break;

                    case "TestInstallationPackage":
                        InstallationPackageTest installationPackageTest = new InstallationPackageTest(workspace);

                        string installPackageBlobUrl = string.Format(ConfigurationManager.AppSettings.Get("InstallPackageBlobUrl"), GetVersion());
                        int retCode = installationPackageTest.RunTest(installPackageBlobUrl);

                        if (retCode == 1)
                            return 1;

                        break;

                    case "GenerateSensorStatusBinFile":
                        string sensorStatusPath = Path.Combine(workspace, ConfigurationManager.AppSettings["SensorStatusPath"]);
                        VerifyLibraryExamples(sensorStatusPath);

                        break;

                    case "UpdateFirmwareVersion":
                        UpdateFirmwareVersion();
                        break;

                    case "UpdateBoardManagerUrl":
                        UpdateBoardManagerUrl();
                        break;

                    case "UpdatePlatformTxT":
                        UpdatePlatformTxt();
                        break;

                    default:
                        Console.WriteLine("Done");
                        break;
                }

                return 0;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                return 1;
            }
        }