{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Jar Unit Tests" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "// Custom Imports\n", "List addedJars = %jars *.jar\n", "//*/\n", "%maven junit:junit:4.12\n", "%maven org.apache.commons:commons-io:1.3.2\n", "%maven commons-io:commons-io:2.7\n", "\n", "// CryptoGuard imports\n", "import static org.junit.Assert.assertFalse;\n", "import static org.junit.Assert.assertTrue;\n", "import static org.junit.Assert.assertEquals;\n", "import static org.junit.Assert.assertNull;\n", "import static org.junit.Assert.assertNotNull;\n", "import static util.Utils.makeArg;\n", "import frontEnd.Interface.outputRouting.ExceptionHandler;\n", "import frontEnd.Interface.ArgumentsCheck;\n", "import frontEnd.MessagingSystem.routing.Listing;\n", "import frontEnd.MessagingSystem.routing.EnvironmentInformation;\n", "import frontEnd.MessagingSystem.routing.structure.Default.Report;\n", "import frontEnd.MessagingSystem.routing.structure.Scarf.AnalyzerReport;\n", "import frontEnd.MessagingSystem.routing.structure.Scarf.BugInstance;\n", "import frontEnd.Interface.EntryPoint;\n", "import rule.engine.EngineType;\n", "import frontEnd.argsIdentifier;\n", "import java.io.File;\n", "import java.nio.charset.StandardCharsets;\n", "import java.nio.file.Files;\n", "import java.nio.file.Paths;\n", "import java.util.ArrayList;\n", "import java.util.Arrays;\n", "import java.util.List;\n", "import org.junit.After;\n", "import org.junit.Before;\n", "import org.junit.Test;\n", "import org.junit.runner.RunWith;\n", "import soot.G;\n", "import util.Utils;\n", "import org.apache.commons.io.FileUtils;\n", "import java.util.Scanner;\n", "import org.apache.commons.io.filefilter.WildcardFileFilter;" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "//Base Paths\n", "public static final Boolean isLinux = !System.getProperty(\"os.name\").contains(\"Windows\");\n", "\n", "public static final String basePath = System.getProperty(\"user.dir\").replace(\"/Notebook\", \"\");\n", "public static final String scarfArgs = Utils.osPathJoin(basePath, \"src\", \"main\", \"resources\", \"Scarf\", \"sample.properties\");\n", "public static final String testRec = Utils.osPathJoin(basePath, \"samples\");\n", "public static final String testPath = Utils.osPathJoin(System.getProperty(\"user.dir\"), \"tmp\");\n", "\n", "FileUtils.deleteDirectory(new File (testPath));\n", "new File(testPath).mkdirs();\n", "\n", "public static final String testRec = Utils.osPathJoin(basePath, \"samples\");\n", "public static final String verySimple_Path = Utils.osPathJoin(testRec, \"VerySimple\");\n", "public static final String srcOneGrvDep = Utils.osPathJoin(testRec, \"testable-jar\", \"build\", \"dependencies\");\n", "\n", "//Source and output Files\n", "public static final String verySimple_Jar = Utils.osPathJoin(verySimple_Path, \"very.jar\");\n", "public static final String verySimple_Jar_xml = Utils.osPathJoin(testPath, \"verySimple_jar.xml\");\n", "public static final String jarOne = Utils.osPathJoin(testRec, \"testable-jar\", \"build\", \"libs\", \"testable-jar.jar\");\n", "public static final String tempJarFile_txt = Utils.osPathJoin(testPath, \"tempJarFile_txt.txt\");\n", "public static final String tempJarFile_Scarf_0 = Utils.osPathJoin(testPath, \"tempJarFile_Scarf_0.xml\");\n", "public static final String tempJarFile_Default_0 = Utils.osPathJoin(testPath, \"tempJarFile_Default_0.json\");\n", "public static final String tempJarFile_Scarf_1 = Utils.osPathJoin(testPath, \"tempJarFile_Scarf_1.xml\");\n", "public static final String tempJarFile_Scarf_Steam_1 = Utils.osPathJoin(testPath, \"tempJarFile_Scarf_Steam_1.xml\");\n", "public static final String tempJarFile_Default_Stream_0 = Utils.osPathJoin(testPath, \"tempJarFile_Default_Stream_0.json\");\n", "public static final String tempJarFile_Scarf_2 = Utils.osPathJoin(testPath, \"tempJarFile_Scarf_2.xml\");" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "// Utililties\n", "String cur_user = System.getProperty(\"user.name\");\n", "String java_home = \"/home/\" + cur_user + \"/.sdkman/candidates/java/8*.0.25*\";\n", "String java7_home = \"/home/\" + cur_user + \"/.sdkman/candidates/java/7*\";\n", "String android_home = \"/home/\" + cur_user + \"/.sdkman/candidates/android/current\";\n", "\n", "//Retrieving a specific path from a wild card based list\n", "public static String getFileFromWildCard(String path) {\n", " String[] split = path.split(\"/\");\n", " StringBuilder build = new StringBuilder();\n", " for (int itr = 0;itr < split.length - 1;itr ++)\n", " build.append(split[itr]).append(\"/\");\n", "\n", " String[] files = new File(build.toString()).list(new WildcardFileFilter(split[split.length-1]));\n", "\n", " if (files.length > 0)\n", " return build.toString() + files[files.length - 1];\n", " else\n", " return null;\n", "}\n", "\n", "java_home = getFileFromWildCard(java_home);\n", "java7_home = getFileFromWildCard(java7_home);\n", "\n", "public static void print(String file) {\n", " try {\n", " Scanner reader = new Scanner(new File(file));\n", "\n", " while (reader.hasNextLine()) System.out.println(reader.nextLine());\n", " } catch (FileNotFoundException e) {\n", " }\n", "}" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "public void main_VerySimple_Scarf() {\n", " G.reset();\n", " String fileOut = verySimple_Jar_xml;\n", "\n", " new File(fileOut).delete();\n", " if (isLinux) {\n", " String args =\n", " makeArg(argsIdentifier.FORMAT, EngineType.JAR)\n", " + makeArg(argsIdentifier.SOURCE, verySimple_Jar)\n", " +\n", " // makeArg(argsIdentifier.DEPENDENCY, srcOneGrvDep) +\n", " makeArg(argsIdentifier.FORMATOUT, Listing.ScarfXML)\n", " + makeArg(argsIdentifier.OUT, fileOut)\n", " + makeArg(argsIdentifier.STREAM)\n", " + makeArg(argsIdentifier.ANDROID, \"/InvalidPath/\")\n", " + makeArg(argsIdentifier.JAVA, java_home)\n", " + makeArg(argsIdentifier.TIMEMEASURE)\n", " + makeArg(argsIdentifier.NOEXIT)\n", " + makeArg(argsIdentifier.PRETTY);\n", "\n", " try {\n", " EntryPoint.main(args.split(\" \"));\n", "\n", " AnalyzerReport report = AnalyzerReport.deserialize(new File(fileOut));\n", " assertFalse(report.getBugInstance().isEmpty());\n", " print(fileOut);\n", " } catch (Exception e) {\n", " e.printStackTrace();\n", " assertNull(e);\n", " }\n", " }\n", "}" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "main_VerySimple_Scarf()" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "public void main_TestableJar() {\n", " G.reset();\n", " String fileOut = tempJarFile_txt;\n", "\n", " new File(fileOut).delete();\n", " if (isLinux) {\n", " String args =\n", " makeArg(argsIdentifier.FORMAT, EngineType.JAR)\n", " + makeArg(argsIdentifier.FORMATOUT, Listing.Legacy)\n", " + makeArg(argsIdentifier.SOURCE, jarOne)\n", " + makeArg(argsIdentifier.ANDROID, \"/InvalidPath/\")\n", " + makeArg(argsIdentifier.JAVA, java_home)\n", " + makeArg(argsIdentifier.DEPENDENCY, srcOneGrvDep)\n", " + makeArg(argsIdentifier.NOEXIT)\n", " + makeArg(argsIdentifier.OUT, fileOut);\n", "\n", " try {\n", " EntryPoint.main(args.split(\" \"));\n", "\n", " List results = Files.readAllLines(Paths.get(fileOut), StandardCharsets.UTF_8);\n", " assertTrue(results.size() >= 10);\n", " print(fileOut);\n", " } catch (Exception e) {\n", " e.printStackTrace();\n", " assertNull(e);\n", " }\n", " }\n", "}" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "main_TestableJar()" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "public void main_TestableJar_Scarf() {\n", " G.reset();\n", " String fileOut = tempJarFile_Scarf_0;\n", "\n", " new File(fileOut).delete();\n", " if (isLinux) {\n", " String args =\n", " makeArg(argsIdentifier.FORMAT, EngineType.JAR)\n", " + makeArg(argsIdentifier.SOURCE, jarOne)\n", " + makeArg(argsIdentifier.DEPENDENCY, srcOneGrvDep)\n", " + makeArg(argsIdentifier.FORMATOUT, Listing.ScarfXML)\n", " + makeArg(argsIdentifier.OUT, fileOut)\n", " + makeArg(argsIdentifier.ANDROID, \"/InvalidPath/\")\n", " + makeArg(argsIdentifier.JAVA, java_home)\n", " + makeArg(argsIdentifier.TIMEMEASURE)\n", " + makeArg(argsIdentifier.NOEXIT)\n", " + makeArg(argsIdentifier.PRETTY);\n", "\n", " try {\n", " EntryPoint.main(args.split(\" \"));\n", "\n", " AnalyzerReport.deserialize(new File(fileOut));\n", " print(fileOut);\n", " } catch (Exception e) {\n", " e.printStackTrace();\n", " assertNull(e);\n", " }\n", " }\n", "}" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "main_TestableJar_Scarf()" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "public void main_TestableJar_Scarf_Heuristics() {\n", " G.reset();\n", " String fileOut = tempJarFile_Scarf_0;\n", "\n", " new File(fileOut).delete();\n", " if (isLinux) {\n", " String args =\n", " makeArg(argsIdentifier.FORMAT, EngineType.JAR)\n", " + makeArg(argsIdentifier.SOURCE, jarOne)\n", " + makeArg(argsIdentifier.DEPENDENCY, srcOneGrvDep)\n", " + makeArg(argsIdentifier.FORMATOUT, Listing.ScarfXML)\n", " + makeArg(argsIdentifier.OUT, fileOut)\n", " + makeArg(argsIdentifier.TIMEMEASURE)\n", " + makeArg(argsIdentifier.ANDROID, \"/InvalidPath/\")\n", " + makeArg(argsIdentifier.JAVA, java_home)\n", " + makeArg(argsIdentifier.NOEXIT)\n", " + makeArg(argsIdentifier.HEURISTICS)\n", " + makeArg(argsIdentifier.PRETTY);\n", "\n", " try {\n", " EntryPoint.main(args.split(\" \"));\n", "\n", " AnalyzerReport report = AnalyzerReport.deserialize(new File(fileOut));\n", " assertNotNull(report.getHeuristics());\n", " assertFalse(report.getBugInstance().isEmpty());\n", " print(fileOut);\n", " } catch (Exception e) {\n", " e.printStackTrace();\n", " assertNull(e);\n", " }\n", " }\n", "}" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "main_TestableJar_Scarf_Heuristics()" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "public void main_TestableJar_Default() {\n", " G.reset();\n", " String fileOut = tempJarFile_Default_0;\n", "\n", " new File(fileOut).delete();\n", " if (isLinux) {\n", " String args =\n", " makeArg(argsIdentifier.FORMAT, EngineType.JAR)\n", " + makeArg(argsIdentifier.SOURCE, jarOne)\n", " + makeArg(argsIdentifier.DEPENDENCY, srcOneGrvDep)\n", " + makeArg(argsIdentifier.FORMATOUT, Listing.Default)\n", " + makeArg(argsIdentifier.OUT, fileOut)\n", " + makeArg(argsIdentifier.ANDROID, \"/InvalidPath/\")\n", " + makeArg(argsIdentifier.JAVA, java_home)\n", " + makeArg(argsIdentifier.TIMEMEASURE)\n", " + makeArg(argsIdentifier.NOEXIT)\n", " + makeArg(argsIdentifier.PRETTY);\n", "\n", " try {\n", " EntryPoint.main(args.split(\" \"));\n", "\n", " Report report = Report.deserialize(new File(fileOut));\n", " assertFalse(report.getIssues().isEmpty());\n", " print(fileOut);\n", " } catch (Exception e) {\n", " e.printStackTrace();\n", " assertNull(e);\n", " }\n", " }\n", "}" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "main_TestableJar_Default()" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "public void main_TestableJar_Default_SpecifyJavaHome() {\n", " G.reset();\n", " String fileOut = tempJarFile_Default_0;\n", "\n", " new File(fileOut).delete();\n", " if (isLinux) {\n", " String args =\n", " makeArg(argsIdentifier.FORMAT, EngineType.JAR)\n", " + makeArg(argsIdentifier.SOURCE, jarOne)\n", " + makeArg(argsIdentifier.DEPENDENCY, srcOneGrvDep)\n", " + makeArg(argsIdentifier.FORMATOUT, Listing.Default)\n", " + makeArg(argsIdentifier.ANDROID, \"/InvalidPath/\")\n", " + makeArg(argsIdentifier.JAVA, java_home)\n", " + makeArg(argsIdentifier.OUT, fileOut)\n", " + makeArg(argsIdentifier.TIMEMEASURE)\n", " + makeArg(argsIdentifier.NOEXIT)\n", " + makeArg(argsIdentifier.PRETTY);\n", "\n", " try {\n", " EntryPoint.main(args.split(\" \"));\n", "\n", " Report report = Report.deserialize(new File(fileOut));\n", " assertFalse(report.getIssues().isEmpty());\n", " print(fileOut);\n", " } catch (Exception e) {\n", " e.printStackTrace();\n", " assertNull(e);\n", " }\n", " }\n", "}" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "main_TestableJar_Default_SpecifyJavaHome()" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "public void main_TestableJar_Default_Heuristics() {\n", " G.reset();\n", " String fileOut = tempJarFile_Default_0;\n", "\n", " new File(fileOut).delete();\n", " if (isLinux) {\n", " String args =\n", " makeArg(argsIdentifier.FORMAT, EngineType.JAR)\n", " + makeArg(argsIdentifier.SOURCE, jarOne)\n", " + makeArg(argsIdentifier.DEPENDENCY, srcOneGrvDep)\n", " + makeArg(argsIdentifier.FORMATOUT, Listing.Default)\n", " + makeArg(argsIdentifier.OUT, fileOut)\n", " + makeArg(argsIdentifier.HEURISTICS)\n", " + makeArg(argsIdentifier.ANDROID, \"/InvalidPath/\")\n", " + makeArg(argsIdentifier.JAVA, java_home)\n", " + makeArg(argsIdentifier.NOEXIT)\n", " + makeArg(argsIdentifier.TIMEMEASURE)\n", " + makeArg(argsIdentifier.PRETTY);\n", "\n", " try {\n", " EntryPoint.main(args.split(\" \"));\n", "\n", " Report report = Report.deserialize(new File(fileOut));\n", " assertNotNull(report.getHeuristics());\n", " assertFalse(report.getIssues().isEmpty());\n", " print(fileOut);\n", " } catch (Exception e) {\n", " e.printStackTrace();\n", " assertNull(e);\n", " }\n", " }\n", "}" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "main_TestableJar_Default_Heuristics()" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "public void main_TestableJar_Scarf_Args() {\n", " G.reset();\n", " String fileOut = tempJarFile_Scarf_1;\n", "\n", " new File(fileOut).delete();\n", " if (isLinux) {\n", " String args =\n", " makeArg(argsIdentifier.FORMAT, EngineType.JAR)\n", " + makeArg(argsIdentifier.SOURCE, jarOne)\n", " + makeArg(argsIdentifier.DEPENDENCY, srcOneGrvDep)\n", " + makeArg(argsIdentifier.FORMATOUT, Listing.ScarfXML)\n", " + makeArg(argsIdentifier.OUT, fileOut)\n", " + makeArg(argsIdentifier.ANDROID, \"/InvalidPath/\")\n", " + makeArg(argsIdentifier.JAVA, java_home)\n", " + makeArg(argsIdentifier.TIMEMEASURE)\n", " + makeArg(argsIdentifier.NOEXIT)\n", " + makeArg(argsIdentifier.PRETTY)\n", " + makeArg(argsIdentifier.SCONFIG, scarfArgs);\n", "\n", " try {\n", " EntryPoint.main(args.split(\" \"));\n", "\n", " AnalyzerReport report = AnalyzerReport.deserialize(new File(fileOut));\n", " assertFalse(report.getBugInstance().isEmpty());\n", " print(fileOut);\n", " } catch (Exception e) {\n", " e.printStackTrace();\n", " assertNull(e);\n", " }\n", " }\n", "}" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "main_TestableJar_Scarf_Args()" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "public void main_TestableJar_Scarf_Stream() {\n", " G.reset();\n", " String fileOut = tempJarFile_Scarf_Steam_1;\n", "\n", " new File(fileOut).delete();\n", " if (isLinux) {\n", " String args =\n", " makeArg(argsIdentifier.FORMAT, EngineType.JAR)\n", " + makeArg(argsIdentifier.SOURCE, jarOne)\n", " + makeArg(argsIdentifier.DEPENDENCY, srcOneGrvDep)\n", " + makeArg(argsIdentifier.FORMATOUT, Listing.ScarfXML)\n", " + makeArg(argsIdentifier.OUT, fileOut)\n", " + makeArg(argsIdentifier.STREAM)\n", " + makeArg(argsIdentifier.ANDROID, \"/InvalidPath/\")\n", " + makeArg(argsIdentifier.JAVA, java_home)\n", " + makeArg(argsIdentifier.TIMEMEASURE)\n", " + makeArg(argsIdentifier.NOEXIT)\n", " + makeArg(argsIdentifier.PRETTY);\n", "\n", " try {\n", " EntryPoint.main(args.split(\" \"));\n", "\n", " AnalyzerReport report = AnalyzerReport.deserialize(new File(fileOut));\n", " assertFalse(report.getBugInstance().isEmpty());\n", " print(fileOut);\n", "\n", " } catch (Exception e) {\n", " e.printStackTrace();\n", " assertNull(e);\n", " }\n", " }\n", "}" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "main_TestableJar_Scarf_Stream()" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "public void main_TestableJar_Default_Stream() {\n", " G.reset();\n", " String fileOut = tempJarFile_Default_Stream_0;\n", "\n", " new File(fileOut).delete();\n", " if (isLinux) {\n", " String args =\n", " makeArg(argsIdentifier.FORMAT, EngineType.JAR)\n", " + makeArg(argsIdentifier.SOURCE, jarOne)\n", " + makeArg(argsIdentifier.DEPENDENCY, srcOneGrvDep)\n", " + makeArg(argsIdentifier.FORMATOUT, Listing.Default)\n", " + makeArg(argsIdentifier.OUT, fileOut)\n", " + makeArg(argsIdentifier.STREAM)\n", " + makeArg(argsIdentifier.ANDROID, \"/InvalidPath/\")\n", " + makeArg(argsIdentifier.JAVA, java_home)\n", " + makeArg(argsIdentifier.TIMEMEASURE)\n", " + makeArg(argsIdentifier.NOEXIT)\n", " + makeArg(argsIdentifier.PRETTY);\n", "\n", " try {\n", " EntryPoint.main(args.split(\" \"));\n", "\n", " Report report = Report.deserialize(new File(fileOut));\n", " assertFalse(report.getIssues().isEmpty());\n", " print(fileOut);\n", " } catch (Exception e) {\n", " e.printStackTrace();\n", " assertNull(e);\n", " }\n", " }\n", "}" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "main_TestableJar_Default_Stream()" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "public void main_TestableJar_ScarfTimeStamp() {\n", " G.reset();\n", " String fileOut = tempJarFile_Scarf_2;\n", "\n", " new File(fileOut).delete();\n", " if (isLinux) {\n", " String args =\n", " makeArg(argsIdentifier.FORMAT, EngineType.JAR)\n", " + makeArg(argsIdentifier.SOURCE, jarOne)\n", " + makeArg(argsIdentifier.DEPENDENCY, srcOneGrvDep)\n", " + makeArg(argsIdentifier.FORMATOUT, Listing.ScarfXML)\n", " + makeArg(argsIdentifier.OUT, fileOut)\n", " + makeArg(argsIdentifier.ANDROID, \"/InvalidPath/\")\n", " + makeArg(argsIdentifier.JAVA, java_home)\n", " + makeArg(argsIdentifier.TIMESTAMP)\n", " + makeArg(argsIdentifier.NOEXIT)\n", " + makeArg(argsIdentifier.PRETTY);\n", "\n", " try {\n", " EntryPoint.main(args.split(\" \"));\n", "\n", " AnalyzerReport report = AnalyzerReport.deserialize(new File(fileOut));\n", " assertFalse(report.getBugInstance().isEmpty());\n", " print(fileOut);\n", " } catch (Exception e) {\n", " e.printStackTrace();\n", " assertNull(e);\n", " }\n", " }\n", "}" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "main_TestableJar_ScarfTimeStamp()" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "public void main_TestableJar_ScarfTimeStamp_UsingClassPaths() {\n", " G.reset();\n", " if (isLinux) {\n", " String args =\n", " makeArg(argsIdentifier.FORMAT, EngineType.JAR)\n", " + makeArg(argsIdentifier.SOURCE, jarOne)\n", " + makeArg(argsIdentifier.DEPENDENCY, srcOneGrvDep)\n", " + makeArg(argsIdentifier.FORMATOUT, Listing.ScarfXML)\n", " + makeArg(argsIdentifier.OUT, tempJarFile_Scarf_2)\n", " + makeArg(argsIdentifier.TIMESTAMP)\n", " + makeArg(argsIdentifier.ANDROID, \"/InvalidPath/\")\n", " + makeArg(argsIdentifier.JAVA, java_home)\n", " + makeArg(argsIdentifier.NOEXIT)\n", " + makeArg(argsIdentifier.PRETTY);\n", "\n", " try {\n", " EntryPoint.main(args.split(\" \"));\n", "\n", " List results =\n", " Files.readAllLines(Paths.get(tempJarFile_Scarf_2), StandardCharsets.UTF_8);\n", " assertTrue(results.size() >= 10);\n", " AnalyzerReport.deserialize(new File(tempJarFile_Scarf_2));\n", " print(tempJarFile_Scarf_2);\n", " } catch (Exception e) {\n", " e.printStackTrace();\n", " assertNull(e);\n", " }\n", " }\n", "}" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "main_TestableJar_ScarfTimeStamp_UsingClassPaths()" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "public void main_TestableJar_Default_WithHeuristics() {\n", " G.reset();\n", " String fileOut = tempJarFile_Default_0;\n", "\n", " new File(fileOut).delete();\n", " if (isLinux) {\n", " String args =\n", " makeArg(argsIdentifier.FORMAT, EngineType.JAR)\n", " + makeArg(argsIdentifier.SOURCE, jarOne)\n", " + makeArg(argsIdentifier.DEPENDENCY, srcOneGrvDep)\n", " + makeArg(argsIdentifier.FORMATOUT, Listing.Default)\n", " + makeArg(argsIdentifier.OUT, fileOut)\n", " + makeArg(argsIdentifier.TIMEMEASURE)\n", " + makeArg(argsIdentifier.ANDROID, \"/InvalidPath/\")\n", " + makeArg(argsIdentifier.JAVA, java_home)\n", " + makeArg(argsIdentifier.NOEXIT)\n", " + makeArg(argsIdentifier.PRETTY)\n", " + makeArg(argsIdentifier.HEURISTICS);\n", "\n", " try {\n", " EntryPoint.main(args.split(\" \"));\n", "\n", " Report report = Report.deserialize(new File(fileOut));\n", " assertNotNull(report.getHeuristics());\n", " assertFalse(report.getIssues().isEmpty());\n", " print(fileOut);\n", " } catch (Exception e) {\n", " e.printStackTrace();\n", " assertNull(e);\n", " }\n", " }\n", "}" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "main_TestableJar_Default_WithHeuristics()" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "public void main_TestableJar_Default_WithClassPath() {\n", " G.reset();\n", " String fileOut = tempJarFile_Default_0;\n", " String deps = srcOneGrvDep;\n", "\n", " deps = \":\" + deps + \":\" + deps + \":\";\n", " new File(fileOut).delete();\n", " if (isLinux) {\n", " String args =\n", " makeArg(argsIdentifier.FORMAT, EngineType.JAR)\n", " + makeArg(argsIdentifier.SOURCE, jarOne)\n", " + makeArg(argsIdentifier.DEPENDENCY, deps)\n", " + makeArg(argsIdentifier.FORMATOUT, Listing.Default)\n", " + makeArg(argsIdentifier.OUT, fileOut)\n", " + makeArg(argsIdentifier.TIMEMEASURE)\n", " + makeArg(argsIdentifier.ANDROID, \"/InvalidPath/\")\n", " + makeArg(argsIdentifier.JAVA, java_home)\n", " + makeArg(argsIdentifier.NOEXIT)\n", " + makeArg(argsIdentifier.HEURISTICS)\n", " + makeArg(argsIdentifier.PRETTY);\n", "\n", " try {\n", " EntryPoint.main(args.split(\" \"));\n", "\n", " Report report = Report.deserialize(new File(fileOut));\n", " assertNotNull(report.getHeuristics());\n", " assertFalse(report.getIssues().isEmpty());\n", " print(fileOut);\n", " } catch (Exception e) {\n", " e.printStackTrace();\n", " assertNull(e);\n", " }\n", " }\n", "}" ] }, { "cell_type": "code", "execution_count": 0, "metadata": {}, "outputs": [], "source": [ "main_TestableJar_Default_WithClassPath()" ] } ], "metadata": { "kernelspec": { "display_name": "Java", "language": "java", "name": "java" }, "language_info": { "codemirror_mode": "java", "file_extension": ".jshell", "mimetype": "text/x-java-source", "name": "Java", "pygments_lexer": "java", "version": "11.0.7+10" } }, "nbformat": 4, "nbformat_minor": 4 }