aboutsummaryrefslogtreecommitdiffstats
path: root/packages/arquillian-unit-tests/src/test/java/org/openecomp/mso/filesearching
diff options
context:
space:
mode:
Diffstat (limited to 'packages/arquillian-unit-tests/src/test/java/org/openecomp/mso/filesearching')
-rw-r--r--packages/arquillian-unit-tests/src/test/java/org/openecomp/mso/filesearching/LogFileSearching.java112
1 files changed, 112 insertions, 0 deletions
diff --git a/packages/arquillian-unit-tests/src/test/java/org/openecomp/mso/filesearching/LogFileSearching.java b/packages/arquillian-unit-tests/src/test/java/org/openecomp/mso/filesearching/LogFileSearching.java
new file mode 100644
index 0000000000..2321b3fff0
--- /dev/null
+++ b/packages/arquillian-unit-tests/src/test/java/org/openecomp/mso/filesearching/LogFileSearching.java
@@ -0,0 +1,112 @@
+package org.openecomp.mso.filesearching;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.UnsupportedEncodingException;
+import java.util.NoSuchElementException;
+import java.util.Scanner;
+
+public class LogFileSearching {
+
+ private static PrintWriter writer;
+
+ public static void initFile(String filePath) {
+ if (writer == null) {
+ try {
+ // This is to reopen an existing file
+ writer = new PrintWriter(new FileOutputStream(filePath,true));
+ } catch ( IOException e) {
+ System.out.println("Exception caught when trying to open the file /tmp/mso-log-checker.log to dump the result");
+ e.printStackTrace();
+ }
+ }
+ }
+
+ public static void closeFile() {
+ if (writer != null) {
+ writer.close();
+ writer = null;
+ }
+ }
+
+
+ public static boolean searchInFile(final String needle, final File file) throws FileNotFoundException {
+ Scanner logScanner = new Scanner(file);
+ try {
+ writer.println("Searching pattern " + needle + " in " + file.getAbsolutePath());
+ //System.out.println("Searching pattern " + needle + " in " + file.getAbsolutePath());
+
+ String filedata = logScanner.useDelimiter("\\Z").next();
+
+ int occurrences = 0;
+ int index = 0;
+
+ while (index < filedata.length() && (index = filedata.indexOf(needle, index)) >= 0) {
+ occurrences++;
+
+ int separatorIndex = filedata.indexOf(System.getProperty("line.separator"), index);
+ if (separatorIndex >=0){
+ writer.println("FOUND:" + filedata.substring(index, separatorIndex));
+ //System.out.println("FOUND:"
+ // + filedata.substring(index, separatorIndex));
+ } else {
+ writer.println("FOUND:" + filedata.substring(index, filedata.length()-1));
+ //System.out.println("FOUND:"
+ // + filedata.substring(index, filedata.length()-1));
+ }
+ index += needle.length();
+ }
+ writer.println("TOTAL:" + occurrences + " FOUND");
+ //System.out.println("TOTAL:" + occurrences + " FOUND");
+ if (occurrences > 0) {
+
+ return true;
+ } else {
+
+ return false;
+ }
+ } catch (NoSuchElementException e) {
+ writer.println("TOTAL:0 FOUND");
+ //System.out.println("TOTAL:0 FOUND");
+ return false;
+ } finally {
+ logScanner.close();
+ }
+ }
+
+ public static boolean searchInDirectory(final String needle, final File directory) throws FileNotFoundException {
+
+ boolean res = false;
+ String[] dirFiles = directory.list();
+
+ if (dirFiles != null) {
+
+ for (String dir : dirFiles) {
+ res = res || searchInDirectory(needle, new File(directory.getAbsolutePath() + "/" + dir));
+ }
+
+ } else {
+ return LogFileSearching.searchInFile(needle, directory);
+ }
+ return res;
+ }
+
+ public static boolean searchInDirectoryForCommonIssues(final String[] needles, final File directory) throws FileNotFoundException {
+ String[] defaultPatternsToUse = {"ClassNotFound","NullPointer","RuntimeException","IllegalStateException","FATAL"};
+
+ if (needles != null && needles.length>0) {
+ defaultPatternsToUse=needles;
+ }
+
+ boolean returnValue=false;
+ for (String needle:defaultPatternsToUse) {
+ returnValue |= LogFileSearching.searchInDirectory(needle,directory);
+ }
+
+ return returnValue;
+ }
+}