예제 #1
0
  public void testRandomizeWith() {
    String ref =
        "class foo;\n"
            + "	virtual function void build_phase(uvm_phase phase);\n"
            + "		this.randomize(random_int) with\n"
            + "			{ random_int > 0;\n"
            + "				random_int<100;\n"
            + "			};\n"
            + "		this.randomize(random_int) with\n"
            + "			{ random_int > 0;\n"
            + "				random_int<100;\n"
            + "			};\n"
            + "	endfunction\n"
            + "endclass\n";

    SVCorePlugin.getDefault().enableDebug(false);

    // Run the indenter over the reference source
    SVIndentScanner scanner = new SVIndentScanner(new StringTextScanner(ref));
    ISVIndenter indenter = SVCorePlugin.getDefault().createIndenter();
    indenter.init(scanner);
    indenter.setTestMode(true);

    indenter.setAdaptiveIndent(true);
    indenter.setAdaptiveIndentEnd(5);
    String result = indenter.indent(-1, -1);

    fLog.debug("Ref:\n" + ref);
    fLog.debug("====");
    fLog.debug("Result:\n" + result);
    fLog.debug("====");

    IndentComparator.compare(fLog, getName(), ref, result);
  }
예제 #2
0
  public void testEmptyForkJoin() {
    String testname = "testEmptyForkJoin";
    String ref =
        "class foo;\n" + "	task bar();\n" + "		fork\n" + "		join\n" + "	endtask\n" + "endclass\n";

    SVCorePlugin.getDefault().enableDebug(false);
    LogHandle log = LogFactory.getLogHandle(testname);

    // Run the indenter over the reference source
    SVIndentScanner scanner = new SVIndentScanner(new StringTextScanner(ref));
    ISVIndenter indenter = SVCorePlugin.getDefault().createIndenter();
    indenter.init(scanner);
    indenter.setTestMode(true);

    indenter.setAdaptiveIndent(true);
    indenter.setAdaptiveIndentEnd(5);
    String result = indenter.indent(-1, -1);

    log.debug("Ref:\n" + ref);
    log.debug("====");
    log.debug("Result:\n" + result);
    log.debug("====");

    IndentComparator.compare(log, testname, ref, result);
    LogFactory.removeLogHandle(log);
  }
예제 #3
0
  public void testForever() {
    String testname = "testForever";
    String ref =
        "module foo ();\n"
            + "	initial begin\n"
            + "		forever #1\n"
            + "		begin\n"
            + "			a=b;\n"
            + "		end\n"
            + "	end\n"
            + "endmodule\n";

    SVCorePlugin.getDefault().enableDebug(false);
    LogHandle log = LogFactory.getLogHandle(testname);

    // Run the indenter over the reference source
    SVIndentScanner scanner = new SVIndentScanner(new StringTextScanner(ref));
    ISVIndenter indenter = SVCorePlugin.getDefault().createIndenter();
    indenter.init(scanner);
    indenter.setTestMode(true);

    indenter.setAdaptiveIndent(true);
    indenter.setAdaptiveIndentEnd(5);
    String result = indenter.indent(-1, -1);

    log.debug("Ref:\n" + ref);
    log.debug("====");
    log.debug("Result:\n" + result);
    log.debug("====");

    IndentComparator.compare(log, testname, ref, result);
    LogFactory.removeLogHandle(log);
  }
예제 #4
0
  public void testIfInFunction() {
    String ref =
        "class xbus_bus_monitor;\n"
            + // 1
            "\n"
            + // 2
            "		function void ignored();\n"
            + // 3
            "		endfunction\n"
            + // 4
            "\n"
            + // 5
            "		// perform_transfer_coverage\n"
            + // 6
            "		function void perform_transfer_coverage();\n"
            + "			if (trans_collected.read_write != NOP) begin\n"
            + "				-> cov_transaction;\n"
            + "				for (int unsigned i = 0; i < trans_collected.size; i++) begin\n"
            + "					addr = trans_collected.addr + i;\n"
            + "					data = trans_collected.data[i];\n"
            + "					wait_state = trans_collected.wait_state[i];\n"
            + "					-> cov_transaction_beat;\n"
            + "				end\n"
            + "			end\n"
            + "		endfunction : perform_transfer_coverage\n"
            + "\n"
            + "endclass : xbus_bus_monitor\n";

    SVCorePlugin.getDefault().enableDebug(false);
    LogHandle log = LogFactory.getLogHandle("testIfInFunction");

    // Run the indenter over the reference source
    SVIndentScanner scanner = new SVIndentScanner(new StringTextScanner(ref));
    ISVIndenter indenter = SVCorePlugin.getDefault().createIndenter();
    indenter.init(scanner);
    indenter.setTestMode(true);

    indenter.setAdaptiveIndent(true);
    indenter.setAdaptiveIndentEnd(5);
    String result = indenter.indent(-1, -1);

    log.debug("Ref:\n" + ref);
    log.debug("====");
    log.debug("Result:\n" + result);
    log.debug("====");

    IndentComparator.compare(log, "testIfInFunction", ref, result);
    LogFactory.removeLogHandle(log);
  }
예제 #5
0
  public void testPoundDelay() {
    String ref =
        "module m ();\n"
            + "	initial begin\n"
            + "		#1110;\n"
            + "		a = b;\n"
            + "		#1110 a = b;\n"
            + "		#1111ns	// No ;\n"
            + "			a = b;\n"
            + "		#1113fs	// No ;\n"
            + "			// comment \n"
            + "			for (i=0; i<5; i++)\n"
            + "			begin\n"
            + "				a = b;\n"
            + "			end\n"
            + "		#112ps;	// with ;\n"
            + "		if (a == b)\n"
            + "		begin\n"
            + "			a = b;\n"
            + "		end\n"
            + "	end\n"
            + "endmodule\n";

    SVCorePlugin.getDefault().enableDebug(false);

    // Run the indenter over the reference source
    SVIndentScanner scanner = new SVIndentScanner(new StringTextScanner(ref));
    ISVIndenter indenter = SVCorePlugin.getDefault().createIndenter();
    indenter.init(scanner);
    indenter.setTestMode(true);

    indenter.setAdaptiveIndent(true);
    indenter.setAdaptiveIndentEnd(5);
    String result = indenter.indent(-1, -1);

    fLog.debug("Ref:\n" + ref);
    fLog.debug("====");
    fLog.debug("Result:\n" + result);
    fLog.debug("====");

    IndentComparator.compare(fLog, getName(), ref, result);
  }
예제 #6
0
  public void testPreProcIndent() {
    String testname = "testPreProcIndent";
    String ref =
        "package foo;\n"
            + "	import pkg_1::*;\n"
            + "	`include \"file1.svh\"\n"
            + "	`include \"file2.svh\"\n"
            + "	`include \"file3.svh\"\n"
            + "endpackage\n"
            + "\n"
            + "`ifndef INCLUDED_my_component1_svhn\n"
            + "	module m ();\n"
            + "		`ifdef ASDF // comment\n"
            + "			// comment\n"
            + "			assign a = b;\n"
            + "		`else\n"
            + "			// comment\n"
            + "			assign c=d;\n"
            + "	\n"
            + "		`endif\n"
            + "		`ifdef ASDF assign a = b; `else assign b = c; `endif\n"
            + "		`ifdef ASDF assign a = b; /* comment */ `else assign b = c; /* comment */ `endif /* comment */ // comment\n"
            + "		initial\n"
            + "		begin\n"
            + "			`ifdef ASDF\n"
            + "				// comment\n"
            + "				a = b;\n"
            + "				a = b;\n"
            + "			`endif\n"
            + "			\n"
            + "		end\n"
            + "		always @*\n"
            + "		begin\n"
            + "			`ifdef ASDF\n"
            + "				// comment\n"
            + "				a = b;\n"
            + "				a = b;\n"
            + "			`endif\n"
            + "			\n"
            + "		end\n"
            + "	endmodule\n"
            + "`endif				// comment\n"
            + "// comment\n";

    SVCorePlugin.getDefault().enableDebug(false);
    LogHandle log = LogFactory.getLogHandle(testname);

    // Run the indenter over the reference source
    SVIndentScanner scanner = new SVIndentScanner(new StringTextScanner(ref));
    ISVIndenter indenter = SVCorePlugin.getDefault().createIndenter();
    indenter.init(scanner);
    indenter.setTestMode(true);

    indenter.setAdaptiveIndent(true);
    indenter.setAdaptiveIndentEnd(5);
    String result = indenter.indent(-1, -1);

    log.debug("Ref:\n" + ref);
    log.debug("====");
    log.debug("Result:\n" + result);
    log.debug("====");

    IndentComparator.compare(log, testname, ref, result);
    LogFactory.removeLogHandle(log);
  }