diff options
| author | Jim Lawson | 2019-01-08 07:26:20 -0800 |
|---|---|---|
| committer | Adam Izraelevitz | 2019-01-08 09:26:20 -0600 |
| commit | 5f0e893c9213464507418a532ee61347a5da26c8 (patch) | |
| tree | 5bb26fcb4f18387573524d817524fbefb844b1d7 /src/main/scala/firrtl/util/ClassUtils.scala | |
| parent | 37567cc65d531b5d47d13c12e9c7ac80fc4d7b1f (diff) | |
Avoid enforcing time constrains during coverage tests. (#989)
This fixes issue #988
I tried one alternative to this fix: record the time to do a *no rename* run (`depth = 0`) and check that the time to do the *deep rename* (`depth = 500`) was a reasonable multiple of the *no rename* test. Unfortunately, the discrepancies were all over the map, sometime as much three orders of magnitude difference.
I decided the current fix was the simplest - don't enforce timing checks if we're doing coverage testing, although determining the latter is brittle.
Diffstat (limited to 'src/main/scala/firrtl/util/ClassUtils.scala')
| -rw-r--r-- | src/main/scala/firrtl/util/ClassUtils.scala | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/main/scala/firrtl/util/ClassUtils.scala b/src/main/scala/firrtl/util/ClassUtils.scala new file mode 100644 index 00000000..1b388035 --- /dev/null +++ b/src/main/scala/firrtl/util/ClassUtils.scala @@ -0,0 +1,19 @@ +package firrtl.util + +object ClassUtils { + /** Determine if a named class is loaded. + * + * @param name - name of the class: "foo.bar" or "org.foo.bar" + * @return true if the class has been loaded (is accessible), false otherwise. + */ + def isClassLoaded(name: String): Boolean = { + val found = try { + Class.forName(name, false, getClass.getClassLoader) != null + } catch { + case e: ClassNotFoundException => false + case x: Throwable => throw x + } +// println(s"isClassLoaded: %s $name".format(if (found) "found" else "didn't find")) + found + } +} |
