ymasory / qualac Goto Github PK
View Code? Open in Web Editor NEWQuality assurance fuzzer for the Scala compiler
Home Page: https://github.com/quala/qualac
License: Other
Quality assurance fuzzer for the Scala compiler
Home Page: https://github.com/quala/qualac
License: Other
Hopefully this can be wrapped into ScalaCheck somehow. There's no getting around the need for the occasional unit test, even if we're focusing on fuzzing.
Probably ProGuard's fault.
Exception in thread "Thread-4" java.lang.NoSuchMethodException: org.scalacheck.Pretty$$anon$2.$div(java.lang.String)
at java.lang.Class.getMethod(Class.java:1622)
at org.scalacheck.Pretty$$anonfun$prettyTestRes$1.reflMethod$Method9(Pretty.scala:109)
at org.scalacheck.Pretty$$anonfun$prettyTestRes$1.apply(Pretty.scala:109)
at org.scalacheck.Pretty$$anonfun$prettyTestRes$1.apply(Pretty.scala:96)
at org.scalacheck.Pretty$$anon$1.apply(Pretty.scala:29)
at org.scalacheck.Pretty$.pretty(Pretty.scala:31)
at org.scalacheck.ConsoleReporter.onTestResult(ConsoleReporter.scala:26)
at org.scalacheck.Test$TestCallback$$anon$2.onTestResult(Test.scala:83)
at org.scalacheck.Test$$anonfun$checkProperties$1$$anon$4.onTestResult(Test.scala:234)
at org.scalacheck.Test$.check(Test.scala:224)
at org.scalacheck.Test$$anonfun$checkProperties$1.apply(Test.scala:236)
at org.scalacheck.Test$$anonfun$checkProperties$1.apply(Test.scala:229)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:194)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:194)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
at scala.collection.immutable.List.foreach(List.scala:45)
at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:30)
at scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:42)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:194)
at scala.collection.mutable.ListBuffer.map(ListBuffer.scala:42)
at org.scalacheck.Test$.checkProperties(Test.scala:229)
at org.scalacheck.Properties.check(Properties.scala:47)
at org.scalacheck.Properties.check(Properties.scala:54)
at qualac.fuzz.FuzzThread.run(FuzzThread.scala:11)
Exception in thread "Thread-5" java.lang.NoSuchMethodException: org.scalacheck.Pretty$$anon$2.$div(java.lang.String)
at java.lang.Class.getMethod(Class.java:1622)
at org.scalacheck.Pretty$$anonfun$prettyTestRes$1.reflMethod$Method9(Pretty.scala:109)
at org.scalacheck.Pretty$$anonfun$prettyTestRes$1.apply(Pretty.scala:109)
at org.scalacheck.Pretty$$anonfun$prettyTestRes$1.apply(Pretty.scala:96)
at org.scalacheck.Pretty$$anon$1.apply(Pretty.scala:29)
at org.scalacheck.Pretty$.pretty(Pretty.scala:31)
at org.scalacheck.ConsoleReporter.onTestResult(ConsoleReporter.scala:26)
at org.scalacheck.Test$TestCallback$$anon$2.onTestResult(Test.scala:83)
at org.scalacheck.Test$$anonfun$checkProperties$1$$anon$4.onTestResult(Test.scala:234)
at org.scalacheck.Test$.check(Test.scala:224)
at org.scalacheck.Test$$anonfun$checkProperties$1.apply(Test.scala:236)
at org.scalacheck.Test$$anonfun$checkProperties$1.apply(Test.scala:229)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:194)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:194)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
at scala.collection.immutable.List.foreach(List.scala:45)
at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:30)
at scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:42)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:194)
at scala.collection.mutable.ListBuffer.map(ListBuffer.scala:42)
at org.scalacheck.Test$.checkProperties(Test.scala:229)
at org.scalacheck.Properties.check(Properties.scala:47)
at org.scalacheck.Properties.check(Properties.scala:54)
at qualac.fuzz.FuzzThread.run(FuzzThread.scala:11)
Exception in thread "Thread-6" Exception in thread "Thread-7" java.lang.NoSuchMethodException: org.scalacheck.Pretty$$anon$2.$div(java.lang.String)
at java.lang.Class.getMethod(Class.java:1622)
at org.scalacheck.Pretty$$anonfun$prettyTestRes$1.reflMethod$Method9(Pretty.scala:109)
at org.scalacheck.Pretty$$anonfun$prettyTestRes$1.apply(Pretty.scala:109)
at org.scalacheck.Pretty$$anonfun$prettyTestRes$1.apply(Pretty.scala:96)
at org.scalacheck.Pretty$$anon$1.apply(Pretty.scala:29)
at org.scalacheck.Pretty$.pretty(Pretty.scala:31)
at org.scalacheck.ConsoleReporter.onTestResult(ConsoleReporter.scala:26)
at org.scalacheck.Test$TestCallback$$anon$2.onTestResult(Test.scala:83)
at org.scalacheck.Test$$anonfun$checkProperties$1$$anon$4.onTestResult(Test.scala:234)
at org.scalacheck.Test$.check(Test.scala:224)
at org.scalacheck.Test$$anonfun$checkProperties$1.apply(Test.scala:236)
at org.scalacheck.Test$$anonfun$checkProperties$1.apply(Test.scala:229)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:194)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:194)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
at scala.collection.immutable.List.foreach(List.scala:45)
at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:30)
at scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:42)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:194)
at scala.collection.mutable.ListBuffer.map(ListBuffer.scala:42)
at org.scalacheck.Test$.checkProperties(Test.scala:229)
at org.scalacheck.Properties.check(Properties.scala:47)
at org.scalacheck.Properties.check(Properties.scala:54)
at qualac.fuzz.FuzzThread.run(FuzzThread.scala:11)
java.lang.NoSuchMethodException: org.scalacheck.Pretty$$anon$2.$div(java.lang.String)
at java.lang.Class.getMethod(Class.java:1622)
at org.scalacheck.Pretty$$anonfun$prettyTestRes$1.reflMethod$Method9(Pretty.scala:109)
at org.scalacheck.Pretty$$anonfun$prettyTestRes$1.apply(Pretty.scala:109)
at org.scalacheck.Pretty$$anonfun$prettyTestRes$1.apply(Pretty.scala:96)
at org.scalacheck.Pretty$$anon$1.apply(Pretty.scala:29)
at org.scalacheck.Pretty$.pretty(Pretty.scala:31)
at org.scalacheck.ConsoleReporter.onTestResult(ConsoleReporter.scala:26)
at org.scalacheck.Test$TestCallback$$anon$2.onTestResult(Test.scala:83)
at org.scalacheck.Test$$anonfun$checkProperties$1$$anon$4.onTestResult(Test.scala:234)
at org.scalacheck.Test$.check(Test.scala:224)
at org.scalacheck.Test$$anonfun$checkProperties$1.apply(Test.scala:236)
at org.scalacheck.Test$$anonfun$checkProperties$1.apply(Test.scala:229)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:194)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:194)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
at scala.collection.immutable.List.foreach(List.scala:45)
at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:30)
at scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:42)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:194)
at scala.collection.mutable.ListBuffer.map(ListBuffer.scala:42)
at org.scalacheck.Test$.checkProperties(Test.scala:229)
at org.scalacheck.Properties.check(Properties.scala:47)
at org.scalacheck.Properties.check(Properties.scala:54)
at qualac.fuzz.FuzzThread.run(FuzzThread.scala:11)
That's a time drain since all our properties are referentially transparent (albeit not pure).
Can't guarantee another thread doesn't insert a new row before the select max id can go through.
It slows down Condor jobs.
the condor node would do that validation
Currently it's only possible to test if something compiles or not.
! 2 Identifiers, Names, and Scopes.any mathematical char can be an identifi
er: Falsified after 40 passed tests.
ARG_0: 0
So says djspiewak.
That way we can subclass org.scalacheck.Properties
with a custom version.
Cross your fingers there will actually be a solution to the binary issue.
This will help find if parallelism is working.
The code points should be store as lazy ranges somehow. It takes 10MB to store them all in memory.
There are ranges. See http://www.unicode.org/reports/tr44/.
Due to out of memory errors, etc. Condor has this feature.
Need to find a function that returns Iterable[Token] or similar.
org.objectweb.asm.ClassReader.readUnsignedShort(Unknown Source)
org.objectweb.asm.ClassReader.<init>(Unknown Source)
org.objectweb.asm.ClassReader.<init>(Unknown Source)
org.objectweb.asm.ClassReader.<init>(Unknown Source)
org.clapper.classutil.asm.ClassFile$.load(ClassFinderImpl.scala:208)
org.clapper.classutil.ClassFinder.org$clapper$classutil$ClassFinder$$classData(ClassFinder.scala:435)
org.clapper.classutil.ClassFinder$$anonfun$4.apply(ClassFinder.scala:425)
org.clapper.classutil.ClassFinder$$anonfun$4.apply(ClassFinder.scala:425)
scala.collection.Iterator$$anon$19.next(Iterator.scala:335)
org.clapper.classutil.ClassFinder$$anonfun$generateFromIterators$1.doIterators$1(ClassFinder.scala:459)
org.clapper.classutil.ClassFinder$$anonfun$generateFromIterators$1$$anonfun$doIterators$1$1.apply(ClassFinder.scala:460)
org.clapper.classutil.ClassFinder$$anonfun$generateFromIterators$1$$anonfun$doIterators$1$1.apply(ClassFinder.scala:459)
scala.util.continuations.ControlContext$$anonfun$flatMap$2$$anonfun$apply$2.apply(ControlContext.scala:71)
scala.util.continuations.ControlContext.foreachFull(ControlContext.scala:87)
scala.util.continuations.ControlContext$$anonfun$flatMap$2$$anonfun$apply$2.apply(ControlContext.scala:73)
grizzled.generator$$anonfun$generate$1$$anonfun$apply$3.apply(generator.scala:131)
grizzled.generator$$anonfun$generate$1$$anonfun$apply$3.apply(generator.scala:131)
grizzled.generator$.loop$1(generator.scala:97)
grizzled.generator$$anonfun$loop$1$1.apply(generator.scala:99)
grizzled.generator$$anonfun$loop$1$1.apply(generator.scala:99)
scala.collection.immutable.Stream$Cons.tail(Stream.scala:630)
scala.collection.immutable.Stream$Cons.tail(Stream.scala:622)
scala.collection.immutable.StreamIterator$$anonfun$next$1.apply(Stream.scala:521)
scala.collection.immutable.StreamIterator$$anonfun$next$1.apply(Stream.scala:521)
scala.collection.immutable.StreamIterator$LazyCell.v(Stream.scala:511)
scala.collection.immutable.StreamIterator.hasNext(Stream.scala:515)
scala.collection.Iterator$$anon$20.hasNext(Iterator.scala:352)
scala.collection.Iterator$$anon$20.hasNext(Iterator.scala:352)
scala.collection.Iterator$$anon$20.hasNext(Iterator.scala:352)
scala.collection.Iterator$$anon$20.hasNext(Iterator.scala:352)
scala.collection.Iterator$$anon$19.hasNext(Iterator.scala:334)
scala.collection.Iterator$class.foreach(Iterator.scala:652)
scala.collection.Iterator$$anon$19.foreach(Iterator.scala:333)
scala.collection.TraversableOnce$class.toMap(TraversableOnce.scala:256)
scala.collection.Iterator$$anon$19.toMap(Iterator.scala:333)
org.clapper.classutil.ClassFinder$.classInfoMap(ClassFinder.scala:505)
qualac.fuzz.Finder$.discoverPropsMatching(Finder.scala:38)
qualac.fuzz.FuzzRun.fuzz(FuzzRun.scala:27)
qualac.fuzz.Main$.main(Main.scala:48)
qualac.fuzz.Main.main(Main.scala)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
CondorJavaWrapper.main(CondorJavaWrapper.java:106) |
| org.objectweb.asm.ClassReader.readUnsignedShort(Unknown Source)
org.objectweb.asm.ClassReader.<init>(Unknown Source)
org.objectweb.asm.ClassReader.<init>(Unknown Source)
org.objectweb.asm.ClassReader.<init>(Unknown Source)
org.clapper.classutil.asm.ClassFile$.load(ClassFinderImpl.scala:208)
org.clapper.classutil.ClassFinder.org$clapper$classutil$ClassFinder$$classData(ClassFinder.scala:435)
org.clapper.classutil.ClassFinder$$anonfun$4.apply(ClassFinder.scala:425)
org.clapper.classutil.ClassFinder$$anonfun$4.apply(ClassFinder.scala:425)
scala.collection.Iterator$$anon$19.next(Iterator.scala:335)
org.clapper.classutil.ClassFinder$$anonfun$generateFromIterators$1.doIterators$1(ClassFinder.scala:459)
org.clapper.classutil.ClassFinder$$anonfun$generateFromIterators$1$$anonfun$doIterators$1$1.apply(ClassFinder.scala:460)
org.clapper.classutil.ClassFinder$$anonfun$generateFromIterators$1$$anonfun$doIterators$1$1.apply(ClassFinder.scala:459)
scala.util.continuations.ControlContext$$anonfun$flatMap$2$$anonfun$apply$2.apply(ControlContext.scala:71)
scala.util.continuations.ControlContext.foreachFull(ControlContext.scala:87)
scala.util.continuations.ControlContext$$anonfun$flatMap$2$$anonfun$apply$2.apply(ControlContext.scala:73)
grizzled.generator$$anonfun$generate$1$$anonfun$apply$3.apply(generator.scala:131)
grizzled.generator$$anonfun$generate$1$$anonfun$apply$3.apply(generator.scala:131)
grizzled.generator$.loop$1(generator.scala:97)
grizzled.generator$$anonfun$loop$1$1.apply(generator.scala:99)
grizzled.generator$$anonfun$loop$1$1.apply(generator.scala:99)
scala.collection.immutable.Stream$Cons.tail(Stream.scala:630)
scala.collection.immutable.Stream$Cons.tail(Stream.scala:622)
scala.collection.immutable.StreamIterator$$anonfun$next$1.apply(Stream.scala:521)
scala.collection.immutable.StreamIterator$$anonfun$next$1.apply(Stream.scala:521)
scala.collection.immutable.StreamIterator$LazyCell.v(Stream.scala:511)
scala.collection.immutable.StreamIterator.hasNext(Stream.scala:515)
scala.collection.Iterator$$anon$20.hasNext(Iterator.scala:352)
scala.collection.Iterator$$anon$20.hasNext(Iterator.scala:352)
scala.collection.Iterator$$anon$20.hasNext(Iterator.scala:352)
scala.collection.Iterator$$anon$20.hasNext(Iterator.scala:352)
scala.collection.Iterator$$anon$19.hasNext(Iterator.scala:334)
scala.collection.Iterator$class.foreach(Iterator.scala:652)
scala.collection.Iterator$$anon$19.foreach(Iterator.scala:333)
scala.collection.TraversableOnce$class.toMap(TraversableOnce.scala:256)
scala.collection.Iterator$$anon$19.toMap(Iterator.scala:333)
org.clapper.classutil.ClassFinder$.classInfoMap(ClassFinder.scala:505)
qualac.fuzz.Finder$.discoverPropsMatching(Finder.scala:38)
qualac.fuzz.FuzzRun.fuzz(FuzzRun.scala:27)
qualac.fuzz.Main$.main(Main.scala:48)
qualac.fuzz.Main.main(Main.scala)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:616)
CondorJavaWrapper.main(CondorJavaWrapper.java:106)
Exception in thread "Thread-5" java.lang.NoClassDefFoundError: scala/tools/nsc/settings/ScalaSettings
at qualac.fuzz.FuzzThread.run(FuzzThread.scala:12)
Caused by: java.lang.ClassNotFoundException: scala.tools.nsc.settings.ScalaSettings
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
... 1 more
Exception in thread "Thread-7" java.lang.NoClassDefFoundError: scala/tools/nsc/settings/ScalaSettings
at qualac.fuzz.FuzzThread.run(FuzzThread.scala:12)
Caused by: java.lang.ClassNotFoundException: scala.tools.nsc.settings.ScalaSettings
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
... 1 more
@epfl(Int) like in Quala, perhaps
org.h2.jdbc.JdbcSQLException: Referential integrity constraint violation: "CONSTRAINT_C0: PUBLIC.JAVAPROP FOREIGN KEY(RUN_ID) REFERENCES PUBLIC.RUN(ID)"; SQL statement:
INSERT INTO javaprop(run_id, jkey, jvalue) VALUES(?, ?, ?) [23506-154]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:327)
at org.h2.message.DbException.get(DbException.java:167)
at org.h2.message.DbException.get(DbException.java:144)
at org.h2.constraint.ConstraintReferential.checkRowOwnTable(ConstraintReferential.java:345)
at org.h2.constraint.ConstraintReferential.checkRow(ConstraintReferential.java:287)
at org.h2.table.Table.fireConstraints(Table.java:851)
at org.h2.table.Table.fireAfterRow(Table.java:868)
at org.h2.command.dml.Insert.insertRows(Insert.java:128)
at org.h2.command.dml.Insert.update(Insert.java:86)
at org.h2.command.CommandContainer.update(CommandContainer.java:69)
at org.h2.command.Command.executeUpdate(Command.java:212)
at org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:143)
at org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:129)
at qualac.db.DB$$anonfun$storeJavaProps$1.apply(DB.scala:145)
at qualac.db.DB$$anonfun$storeJavaProps$1.apply(DB.scala:138)
at scala.collection.immutable.HashSet$HashSet1.foreach(HashSet.scala:130)
at scala.collection.immutable.HashSet$HashTrieSet.foreach(HashSet.scala:275)
at qualac.db.DB$.storeJavaProps(DB.scala:138)
at qualac.db.DB$.liftedTree1$1(DB.scala:20)
at qualac.db.DB$.(DB.scala:16)
at qualac.db.DB$.(DB.scala)
at qualac.fuzz.FuzzRun.db(FuzzRun.scala:10)
at qualac.fuzz.FuzzRun.fuzz(FuzzRun.scala:15)
at qualac.fuzz.Main$.main(Main.scala:25)
at qualac.fuzz.Main.main(Main.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at sbt.Run.invokeMain(Run.scala:69)
at sbt.Run.run0(Run.scala:60)
at sbt.Run.execute$1(Run.scala:48)
at sbt.Run$$anonfun$run$2.apply(Run.scala:51)
at sbt.Run$$anonfun$run$2.apply(Run.scala:51)
at sbt.TrapExit$.executeMain$1(TrapExit.scala:33)
at sbt.TrapExit$$anon$1.run(TrapExit.scala:42)
djspiewak says this is possible using sbt's tricks
Some kinds of compiler bugs could conceivably lead to infinite loops. Fuzzing runs of programs can even easier.
and that config file's pattern should only match the one prop the condor node is supposed to run.
This would stop any one trial or sequence of trials that is taking too long, hanging, etc.
Forcing test writers to use Properties
seems pointless and anti-parallel.
Probably some Condor classpath/SecurityManager type thing.
Since class, message, stacktrace are nullable even in the case of an exception.
Automatically distribute test suites across multiple XYZ.submit files and then submit them.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.