forked from mirrors/gecko-dev
		
	# ignore-this-changeset Differential Revision: https://phabricator.services.mozilla.com/D35940 --HG-- extra : source : d214f0c82813e5a8d3987debc490a2c11f1308ff
		
			
				
	
	
		
			120 lines
		
	
	
	
		
			3.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			120 lines
		
	
	
	
		
			3.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/* This Source Code Form is subject to the terms of the Mozilla Public
 | 
						|
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
						|
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 | 
						|
 | 
						|
function test_code_coverage_func1() {
 | 
						|
  return 22;
 | 
						|
}
 | 
						|
 | 
						|
async function run_test() {
 | 
						|
  do_load_child_test_harness();
 | 
						|
  do_test_pending();
 | 
						|
 | 
						|
  const codeCoverage = Cc["@mozilla.org/tools/code-coverage;1"].getService(
 | 
						|
    Ci.nsICodeCoverage
 | 
						|
  );
 | 
						|
 | 
						|
  const files_orig = getFiles();
 | 
						|
 | 
						|
  test_code_coverage_func1();
 | 
						|
 | 
						|
  await codeCoverage.flushCounters();
 | 
						|
 | 
						|
  const first_flush_files = getFiles();
 | 
						|
  const first_flush_records = parseRecords(
 | 
						|
    diffFiles(first_flush_files, files_orig)
 | 
						|
  );
 | 
						|
 | 
						|
  Assert.ok(first_flush_records.has("test_basic_child_and_parent.js"));
 | 
						|
  Assert.ok(!first_flush_records.has("support.js"));
 | 
						|
  let fnRecords = first_flush_records
 | 
						|
    .get("test_basic_child_and_parent.js")
 | 
						|
    .filter(record => record.type == "FN");
 | 
						|
  let fndaRecords = first_flush_records
 | 
						|
    .get("test_basic_child_and_parent.js")
 | 
						|
    .filter(record => record.type == "FNDA");
 | 
						|
  Assert.ok(fnRecords.some(record => record.name == "top-level"));
 | 
						|
  Assert.ok(fnRecords.some(record => record.name == "run_test"));
 | 
						|
  Assert.ok(
 | 
						|
    fnRecords.some(record => record.name == "test_code_coverage_func1")
 | 
						|
  );
 | 
						|
  Assert.ok(
 | 
						|
    fndaRecords.some(record => record.name == "run_test" && record.hits == 1)
 | 
						|
  );
 | 
						|
  Assert.ok(
 | 
						|
    !fndaRecords.some(record => record.name == "run_test" && record.hits != 1)
 | 
						|
  );
 | 
						|
  Assert.ok(
 | 
						|
    fndaRecords.some(
 | 
						|
      record => record.name == "test_code_coverage_func1" && record.hits == 1
 | 
						|
    )
 | 
						|
  );
 | 
						|
  Assert.ok(
 | 
						|
    !fndaRecords.some(
 | 
						|
      record => record.name == "test_code_coverage_func1" && record.hits != 1
 | 
						|
    )
 | 
						|
  );
 | 
						|
 | 
						|
  sendCommand("load('support.js');", async function() {
 | 
						|
    await codeCoverage.flushCounters();
 | 
						|
 | 
						|
    const second_flush_files = getFiles();
 | 
						|
    const second_flush_records = parseRecords(
 | 
						|
      diffFiles(second_flush_files, first_flush_files)
 | 
						|
    );
 | 
						|
 | 
						|
    Assert.ok(second_flush_records.has("test_basic_child_and_parent.js"));
 | 
						|
    fnRecords = second_flush_records
 | 
						|
      .get("test_basic_child_and_parent.js")
 | 
						|
      .filter(record => record.type == "FN");
 | 
						|
    fndaRecords = second_flush_records
 | 
						|
      .get("test_basic_child_and_parent.js")
 | 
						|
      .filter(record => record.type == "FNDA");
 | 
						|
    Assert.ok(fnRecords.some(record => record.name == "top-level"));
 | 
						|
    Assert.ok(fnRecords.some(record => record.name == "run_test"));
 | 
						|
    Assert.ok(
 | 
						|
      fnRecords.some(record => record.name == "test_code_coverage_func1")
 | 
						|
    );
 | 
						|
    Assert.ok(
 | 
						|
      fndaRecords.some(
 | 
						|
        record => record.name == "test_code_coverage_func1" && record.hits == 0
 | 
						|
      )
 | 
						|
    );
 | 
						|
    Assert.ok(
 | 
						|
      !fndaRecords.some(
 | 
						|
        record => record.name == "test_code_coverage_func1" && record.hits != 0
 | 
						|
      )
 | 
						|
    );
 | 
						|
    Assert.ok(second_flush_records.has("support.js"));
 | 
						|
    fnRecords = second_flush_records
 | 
						|
      .get("support.js")
 | 
						|
      .filter(record => record.type == "FN");
 | 
						|
    fndaRecords = second_flush_records
 | 
						|
      .get("support.js")
 | 
						|
      .filter(record => record.type == "FNDA");
 | 
						|
    Assert.ok(fnRecords.some(record => record.name == "top-level"));
 | 
						|
    Assert.ok(
 | 
						|
      fnRecords.some(record => record.name == "test_code_coverage_func2")
 | 
						|
    );
 | 
						|
    Assert.ok(
 | 
						|
      fndaRecords.some(record => record.name == "top-level" && record.hits == 1)
 | 
						|
    );
 | 
						|
    Assert.ok(
 | 
						|
      !fndaRecords.some(
 | 
						|
        record => record.name == "top-level" && record.hits != 1
 | 
						|
      )
 | 
						|
    );
 | 
						|
    Assert.ok(
 | 
						|
      fndaRecords.some(
 | 
						|
        record => record.name == "test_code_coverage_func2" && record.hits == 1
 | 
						|
      )
 | 
						|
    );
 | 
						|
    Assert.ok(
 | 
						|
      !fndaRecords.some(
 | 
						|
        record => record.name == "test_code_coverage_func2" && record.hits != 1
 | 
						|
      )
 | 
						|
    );
 | 
						|
 | 
						|
    do_test_finished();
 | 
						|
  });
 | 
						|
}
 |