only run the important (high coverage) tests in regression suite
This commit is contained in:
@ -13,7 +13,7 @@ import rocket._
|
||||
import rocket.Util._
|
||||
import groundtest._
|
||||
import scala.math.max
|
||||
import scala.collection.mutable.ListBuffer
|
||||
import scala.collection.mutable.{LinkedHashSet, ListBuffer}
|
||||
import DefaultTestSuites._
|
||||
import cde.{Parameters, Config, Dump, Knob, CDEMatchError}
|
||||
|
||||
@ -321,6 +321,32 @@ class BaseConfig extends Config (
|
||||
case GlobalAddrMap => globalAddrMap
|
||||
case EnableL2Logging => false
|
||||
case ExportGroundTestStatus => false
|
||||
case RegressionTestNames => LinkedHashSet(
|
||||
"rv64ud-v-fcvt",
|
||||
"rv64ud-p-fdiv",
|
||||
"rv64ud-v-fadd",
|
||||
"rv64uf-v-fadd",
|
||||
"rv64um-v-mul",
|
||||
"rv64mi-p-breakpoint",
|
||||
"rv64uc-v-rvc",
|
||||
"rv64ud-v-structural",
|
||||
"rv64si-p-wfi",
|
||||
"rv64um-v-divw",
|
||||
"rv64ua-v-lrsc",
|
||||
"rv64ui-v-fence_i",
|
||||
"rv64ud-v-fcvt_w",
|
||||
"rv64uf-v-fmin",
|
||||
"rv64ui-v-sb",
|
||||
"rv64ua-v-amomax_d",
|
||||
"rv64ud-v-move",
|
||||
"rv64ud-v-fclass",
|
||||
"rv64ua-v-amoand_d",
|
||||
"rv64ua-v-amoxor_d",
|
||||
"rv64si-p-sbreak",
|
||||
"rv64ud-v-fmadd",
|
||||
"rv64uf-v-ldst",
|
||||
"rv64um-v-mulh",
|
||||
"rv64si-p-dirty")
|
||||
case _ => throw new CDEMatchError
|
||||
}},
|
||||
knobValues = {
|
||||
@ -447,6 +473,13 @@ class WithRV32 extends Config(
|
||||
case UseUser => false
|
||||
case UseAtomics => false
|
||||
case UseFPU => false
|
||||
case RegressionTestNames => LinkedHashSet(
|
||||
"rv32mi-p-ma_addr",
|
||||
"rv32mi-p-csr",
|
||||
"rv32ui-p-sh",
|
||||
"rv32ui-p-lh",
|
||||
"rv32mi-p-sbreak",
|
||||
"rv32ui-p-sll")
|
||||
case _ => throw new CDEMatchError
|
||||
}
|
||||
)
|
||||
|
@ -57,6 +57,7 @@ class WithGroundTest extends Config(
|
||||
case UseFPU => false
|
||||
case UseAtomics => false
|
||||
case UseCompressed => false
|
||||
case RegressionTestNames => LinkedHashSet("rv64ui-p-simple")
|
||||
case _ => throw new CDEMatchError
|
||||
})
|
||||
|
||||
@ -190,6 +191,7 @@ class WithUnitTest extends Config(
|
||||
case UseFPU => false
|
||||
case UseAtomics => false
|
||||
case UseCompressed => false
|
||||
case RegressionTestNames => LinkedHashSet("rv64ui-p-simple")
|
||||
case _ => throw new CDEMatchError
|
||||
})
|
||||
|
||||
|
@ -4,7 +4,9 @@ package rocketchip
|
||||
|
||||
import Chisel._
|
||||
import scala.collection.mutable.{LinkedHashSet,LinkedHashMap}
|
||||
import cde.{Parameters, ParameterDump, Config}
|
||||
import cde.{Parameters, ParameterDump, Config, Field}
|
||||
|
||||
case object RegressionTestNames extends Field[LinkedHashSet[String]]
|
||||
|
||||
abstract class RocketTestSuite {
|
||||
val dir: String
|
||||
@ -41,15 +43,24 @@ class BenchmarkTestSuite(makePrefix: String, val dir: String, val names: LinkedH
|
||||
override def toString = s"$makeTargetName = \\\n" + names.map(n => s"\t$n.riscv").mkString(" \\\n") + postScript
|
||||
}
|
||||
|
||||
class RegressionTestSuite(val names: LinkedHashSet[String]) extends RocketTestSuite {
|
||||
val envName = ""
|
||||
val dir = "$(RISCV)/riscv64-unknown-elf/share/riscv-tests/isa"
|
||||
val makeTargetName = "regression-tests"
|
||||
override def toString = s"$makeTargetName = \\\n" + names.mkString(" \\\n")
|
||||
}
|
||||
|
||||
object TestGeneration {
|
||||
import scala.collection.mutable.HashMap
|
||||
val asmSuites = new LinkedHashMap[String,AssemblyTestSuite]()
|
||||
val bmarkSuites = new HashMap[String,BenchmarkTestSuite]()
|
||||
val bmarkSuites = new LinkedHashMap[String,BenchmarkTestSuite]()
|
||||
val regressionSuites = new LinkedHashMap[String,RegressionTestSuite]()
|
||||
|
||||
def addSuite(s: RocketTestSuite) {
|
||||
s match {
|
||||
case a: AssemblyTestSuite => asmSuites += (a.makeTargetName -> a)
|
||||
case b: BenchmarkTestSuite => bmarkSuites += (b.makeTargetName -> b)
|
||||
case r: RegressionTestSuite => regressionSuites += (r.makeTargetName -> r)
|
||||
}
|
||||
}
|
||||
|
||||
@ -86,7 +97,8 @@ run-$kind-tests-fast: $$(addprefix $$(output_dir)/, $$(addsuffix .run, $targets)
|
||||
f.write(
|
||||
List(
|
||||
gen("asm", asmSuites.values.toSeq),
|
||||
gen("bmark", bmarkSuites.values.toSeq)
|
||||
gen("bmark", bmarkSuites.values.toSeq),
|
||||
gen("regression", regressionSuites.values.toSeq)
|
||||
).mkString("\n"))
|
||||
f.close
|
||||
}
|
||||
@ -205,6 +217,8 @@ object TestGenerator extends App {
|
||||
chiselMain.run(args.drop(3), gen)
|
||||
//Driver.elaborate(gen, configName = configClassName)
|
||||
|
||||
TestGeneration.addSuite(new RegressionTestSuite(paramsFromConfig(RegressionTestNames)))
|
||||
|
||||
TestGeneration.generateMakefrag(topModuleName, configClassName)
|
||||
TestBenchGeneration.generateVerilogFragment(
|
||||
topModuleName, configClassName, paramsFromConfig)
|
||||
|
Reference in New Issue
Block a user