Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Firefox/modules/libmar/tests/unit/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 3 kB image not shown  

Quelle  test_create.js   Sprache: JAVA

 
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */


function run_test() {
  /**
   * Creates MAR from the passed files, compares it to the reference MAR.
   *
   * @param refMARFileName The name of the MAR file that should match
   * @param files          The files that should go in the created MAR
   * @param checkNoMAR     If true return an error if a file already exists
   */

  function run_one_test(refMARFileName, files, checkNoMAR) {
    if (checkNoMAR === undefined) {
      checkNoMAR = true;
    }

    // Ensure the MAR we will create doesn't already exist.
    let outMAR = tempDir.clone();
    outMAR.append("out.mar");
    if (checkNoMAR) {
      Assert.ok(!outMAR.exists());
    }

    // Create the actual MAR file.
    createMAR(outMAR, do_get_file("data"), files);

    // Get the reference MAR data.
    let refMAR = do_get_file("data/" + refMARFileName);
    let refMARData = getBinaryFileData(refMAR);

    // Verify the data of the MAR is what it should be.
    let outMARData = getBinaryFileData(outMAR);
    if (mozinfo.os != "win") {
      // Modify the array index that contains the file permission in this mar so
      // the comparison succeeds. This value is only changed when the value is
      // the expected value on non-Windows platforms since the MAR files are
      // created on Windows. This makes it possible to use the same MAR files for
      // all platforms.
      switch (refMARFileName) {
        case "0_sized.mar":
          if (outMARData[143] == 180) {
            outMARData[143] = 182;
          }
          break;
        case "1_byte.mar":
          if (outMARData[144] == 180) {
            outMARData[144] = 182;
          }
          break;
        case "binary_data.mar":
          if (outMARData[655] == 180) {
            outMARData[655] = 182;
          }
          break;
        case "multiple_file.mar":
          if (outMARData[656] == 180) {
            outMARData[656] = 182;
          }
          if (outMARData[681] == 180) {
            outMARData[681] = 182;
          }
          if (outMARData[705] == 180) {
            outMARData[705] = 182;
          }
      }
    }
    compareBinaryData(outMARData, refMARData);
  }

  // Define the unit tests to run.
  let tests = {
    // Test creating a MAR file with a 0 byte file.
    test_zero_sized: function _test_zero_sized() {
      return run_one_test("0_sized.mar", ["0_sized_file"]);
    },
    // Test creating a MAR file with a 1 byte file.
    test_one_byte: function _test_one_byte() {
      return run_one_test("1_byte.mar", ["1_byte_file"]);
    },
    // Test creating a MAR file with binary data.
    test_binary_data: function _test_binary_data() {
      return run_one_test("binary_data.mar", ["binary_data_file"]);
    },
    // Test creating a MAR file with multiple files inside of it.
    test_multiple_file: function _test_multiple_file() {
      return run_one_test("multiple_file.mar", [
        "0_sized_file",
        "1_byte_file",
        "binary_data_file",
      ]);
    },
    // Test creating a MAR file on top of a different one that already exists
    // at the location the new one will be created at.
    test_overwrite_already_exists: function _test_overwrite_already_exists() {
      let differentFile = do_get_file("data/1_byte.mar");
      let outMARDir = tempDir.clone();
      differentFile.copyTo(outMARDir, "out.mar");
      return run_one_test("binary_data.mar", ["binary_data_file"], false);
    },
    // Between each test make sure the out MAR does not exist.
    cleanup_per_test: function _cleanup_per_test() {
      let outMAR = tempDir.clone();
      outMAR.append("out.mar");
      if (outMAR.exists()) {
        outMAR.remove(false);
      }
    },
  };

  // Run all the tests
  Assert.equal(run_tests(tests), Object.keys(tests).length - 1);
}

Messung V0.5
C=95 H=99 G=96

¤ Dauer der Verarbeitung: 0.24 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.