gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [taler-schemafuzz] branch master updated: Loop is working.


From: gnunet
Subject: [GNUnet-SVN] [taler-schemafuzz] branch master updated: Loop is working. still crashes on some mutations.
Date: Mon, 11 Jun 2018 17:53:24 +0200

This is an automated email from the git hooks/post-receive script.

erwan-ulrich pushed a commit to branch master
in repository schemafuzz.

The following commit(s) were added to refs/heads/master by this push:
     new fcccf4d  Loop is working. still crashes on some mutations.
fcccf4d is described below

commit fcccf4d6459024123f2f406086c2d93532b642a2
Author: Feideus <address@hidden>
AuthorDate: Mon Jun 11 17:53:18 2018 +0200

    Loop is working. still crashes on some mutations.
---
 firstUnusedId.sh                                   |  1 +
 .../java/org/schemaspy/model/GenericTreeNode.java  | 64 ++++++++++++++++++++++
 .../java/org/schemaspy/model/SingleChange.java     |  5 ++
 3 files changed, 70 insertions(+)

diff --git a/firstUnusedId.sh b/firstUnusedId.sh
new file mode 100644
index 0000000..56d96c9
--- /dev/null
+++ b/firstUnusedId.sh
@@ -0,0 +1 @@
+psql -U feideus -d sample_database2 -c "\i tryout.sql" | sed '3q;d'
diff --git a/src/main/java/org/schemaspy/model/GenericTreeNode.java 
b/src/main/java/org/schemaspy/model/GenericTreeNode.java
index 23d29f7..2ba8723 100644
--- a/src/main/java/org/schemaspy/model/GenericTreeNode.java
+++ b/src/main/java/org/schemaspy/model/GenericTreeNode.java
@@ -1,6 +1,8 @@
 package org.schemaspy.model;
 
+import java.io.BufferedReader;
 import java.io.IOException;
+import java.io.InputStreamReader;
 import java.sql.*;
 
 import java.text.SimpleDateFormat;
@@ -749,7 +751,49 @@ public class GenericTreeNode {
             e.printStackTrace();
         }
 
+
+
         initial_state_row = response.getRows().get(0); // there should be only 
one row.
+
+
+
+        semiQuery = "SELECT * FROM " + 
chosenChange.getParentTableColumn().getTable().getName() ;
+        if (chosenChange.getParentTableColumn().getTypeName().equals("varchar")
+                || 
chosenChange.getParentTableColumn().getTypeName().equals("bool")
+                || 
chosenChange.getParentTableColumn().getTypeName().equals("timestamp")
+                || 
chosenChange.getParentTableColumn().getTypeName().equals("date")
+                || 
chosenChange.getParentTableColumn().getTypeName().equals("_text")
+                || 
chosenChange.getParentTableColumn().getTypeName().equals("text")
+                || 
chosenChange.getParentTableColumn().getTypeName().equals("fulltext")
+                || 
chosenChange.getParentTableColumn().getTypeName().equals("email"))
+            semiQuery = semiQuery + " WHERE " + 
chosenChange.getParentTableColumn().getName() + "= 
'"+chosenChange.getNewValue() + " '";
+        else
+            semiQuery = semiQuery + " WHERE " + 
chosenChange.getParentTableColumn().getName() + "="+chosenChange.getNewValue();
+
+        try {
+            Statement stmt = sqlService.getConnection().createStatement();
+            ResultSet res = stmt.executeQuery(semiQuery);
+            qrp = new QueryResponseParser();
+            ArrayList<Row> rows = new ArrayList<Row>(qrp.parse(res, 
chosenChange.getParentTableColumn().getTable()).getRows());
+            response = new QueryResponse(rows);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        if(!response.getRows().isEmpty())
+        {
+            try
+            {
+                Process fuID = new ProcessBuilder("/bin/bash", 
"firstUnusedId.sh").start();
+                String newValueAsString = getScriptResponse(fuID);
+                int newValue = 
Integer.parseInt(newValueAsString.replaceAll("\\s+",""));
+                chosenChange.setNewValue(newValue);
+            }
+            catch(Exception e)
+            {
+                e.printStackTrace();
+            }
+        }
     }
 
     public boolean checkIfHasParentFk(Database db)
@@ -807,4 +851,24 @@ public class GenericTreeNode {
         }
         return newPossibilities;
     }
+
+    public String getScriptResponse(Process p)
+    {
+        String response = "";
+        try
+        {
+
+            BufferedReader r = new BufferedReader(new 
InputStreamReader(p.getInputStream()));
+            String line;
+            while ((line = r.readLine())!=null) {
+                response = response+line;
+            }
+            r.close();
+        }
+        catch(Exception e)
+        {
+            System.out.println("error while reading process output"+e);
+        }
+        return response;
+    }
 }
diff --git a/src/main/java/org/schemaspy/model/SingleChange.java 
b/src/main/java/org/schemaspy/model/SingleChange.java
index 897b517..0463797 100644
--- a/src/main/java/org/schemaspy/model/SingleChange.java
+++ b/src/main/java/org/schemaspy/model/SingleChange.java
@@ -64,6 +64,10 @@ public class SingleChange
       return parentTableColumn;
     }
 
+    public void setNewValue(Object newValue) {
+        this.newValue = newValue;
+    }
+
     public boolean compare(SingleChange chosenChange)
     {
         if(chosenChange == null || this == null )
@@ -78,6 +82,7 @@ public class SingleChange
         
if(!chosenChange.getParentTableColumn().getName().equals(this.getParentTableColumn().getName()))
           return false;
 
+
       return true;
     }
 

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]