Skip to content
Snippets Groups Projects
  1. Jan 05, 2018
    • Mike Pennisi's avatar
      e6d674ef
    • Mike Pennisi's avatar
      Rename negative test "phase" for parsing · 13611037
      Mike Pennisi authored
      Early errors may result from parsing the source text of a test file, but
      they may also result from parsing some other source text as referenced
      through the ES2015 module syntax. The latter form of early error is not
      necessarily detectable by ECMAScript parsers, however. Because of this,
      the label "early" is not sufficiently precise for all Test262 consumers
      to correctly interpret all tests.
      
      Update the "phase" name of "early" to "parse" for all those negative
      tests that describe errors resulting from parsing of the file's source
      text directly. A forthcoming commit will update the remaining tests to
      use a "phase" name that is more specific to module resolution.
      13611037
    • Adrian Heine's avatar
      8e7213db
  2. Oct 18, 2017
  3. Oct 04, 2017
  4. Sep 08, 2017
  5. Aug 23, 2017
  6. Jun 28, 2017
    • Mike Pennisi's avatar
      Enforce use of `throw` stmt in early error tests · 53842533
      Mike Pennisi authored
      Previously, test consumers were encouraged to insert a `throw` statement
      as the first statement of tests for early errors. This recommendation
      made tests harder to consume, and as an optional transformation,
      consumers may have ignored it or simply been unaware it was made. By
      explicitly including such a `throw` statement, the tests become more
      literal, making them easier to consume and more transparent in their
      expectations.
      
      Document expectation for all tests for early errors to include an
      explicit `throw` statement. Extend linting script to verify that
      contributors are automatically notified of violations and to ensure that
      future contributions satisfy this expectation.
      53842533
  7. Jun 12, 2017
    • jugglinmike's avatar
      Lint test `features` tag (#1060) · 66bd632b
      jugglinmike authored
      A recent commit introduced a document that enumerated acceptable values
      for the test "features" metadata tag. However, this list was incomplete,
      and maintaining it placed extra burden on the project owners.
      
      Restructure the document into a machine-readable format. Add entries for
      all previously-omitted values. Add in-line documentation with
      recommendations for maintenance of the file. Extend the project's
      linting tool to validate tests according to the document's contents.
      66bd632b
  8. May 04, 2017
  9. May 01, 2017
  10. Apr 24, 2017
  11. Apr 13, 2017
  12. Apr 11, 2017
  13. Mar 04, 2017
    • Mike Pennisi's avatar
      [generation] Prevent invalid transformation · da4e798e
      Mike Pennisi authored
      In order to promote readability of the generated test material, the test
      generation tool may insert whitespace if the context a given expanded
      variable calls for it. Avoid inserting such whitespace within literal
      values that span multiple lines.
      da4e798e
  14. Oct 19, 2016
  15. Aug 22, 2016
  16. Jun 18, 2016
    • Sam Saccone's avatar
      Switch to non-positional argument. · cb4e1bcb
      Sam Saccone authored
      Since the argument is required, we mark it as so. Using this approach
      gives the user a much nicer error message, as compared to just the "not
      enough args" message.
      cb4e1bcb
  17. May 31, 2016
  18. Apr 26, 2016
  19. Apr 25, 2016
    • jugglinmike's avatar
      [generation] Support changing to existing files (#583) · 54fcbf7a
      jugglinmike authored
      When inspecting previously-generated files, a new `Test` instance should
      be used. This avoids over-writing the in-memory representation of the
      latest test, and allows previously-existing test files to be partially
      updated according to subsequent changes in their respective source/case
      files.
      54fcbf7a
  20. Apr 18, 2016
    • Mike Pennisi's avatar
      [generation] Improve file creation heuristic · 613d33ad
      Mike Pennisi authored
      In expecting "case directories" to contain a sub-directory named
      "default", the test generation tool is unable to generate tests for
      features where a directory named "default" is not appropriate.
      
      Modify the heuristic that identifies "case directories" to use a more
      fundamental aspect (i.e. the existence of at least one "case" file).
      613d33ad
    • Mike Pennisi's avatar
      [generation] Expand "comments" in string literals · b0b41775
      Mike Pennisi authored
      Extend test generation tool to recognize and expand interpolation
      patterns within string literals.
      b0b41775
  21. Mar 16, 2016
  22. Feb 19, 2016
  23. Feb 12, 2016
    • Mike Pennisi's avatar
      Make asynchronous test configuration explicit · 23d56620
      Mike Pennisi authored
      For asynchronous tests, the contract between test file and test runner
      is implicit: runners are expected to inspect the source code for
      references to a global `$DONE` identifier.
      
      Promote a more explicit contract between test file and test runner by
      introducing a new frontmatter "tag", `async`. This brings asynchronous
      test configuration in-line with other configuration mechanisms and also
      provides a more natural means of test filtering.
      
      The modifications to test files was made programatically using the
      `grep` and `sed` utilities:
      
          $ grep "\$DONE" test/ -r --files-with-match --null | \
              xargs -0 sed -i 's/^\(flags:\s*\)\[/\1[async, /g'
          $ grep "\$DONE" test/ -rl --null | \
              xargs -0 grep -E '^flags:' --files-without-match --null | \
              xargs -0 sed -i 's/^---\*\//flags: [async]\n---*\//'
      23d56620
  24. Feb 10, 2016
    • Mike Pennisi's avatar
      Runner: Re-use lock to share access to stdout · b791cc4f
      Mike Pennisi authored
      When executing multiple tests in parallel, each "child" thread would
      write to the process's standard output buffer immediately upon test
      completion. Because thread execution order and instruction interleaving
      is non-deterministic, this made it possible for characters to be emitted
      out-of-order.
      
      When extended to support multiple concurrent threads, the runner was
      outfitted with a "log lock" dedicated to sharing access to the output
      file (when applicable). Re-use this lock when writing to standard out,
      ensuring proper ordering of test result messages.
      b791cc4f
    • Mike Pennisi's avatar
      Test runner: Avoid race condition · 21781289
      Mike Pennisi authored
      A recent extension to the test runner introduced support for running
      tests in parallel using multi-threading. Following this, the runner
      would incorrectly emit the "final report" before all individual test
      results.
      
      In order to emit the "final report" at the end of the output stream, the
      parent thread would initialize all children and wait for availability of
      a "log lock" shared by all children.
      
      According to the documentation on the "threading" module's Lock object
      [1]:
      
      > When more than one thread is blocked in acquire() waiting for the state
      > to turn to unlocked, only one thread proceeds when a release() call
      > resets the state to unlocked; which one of the waiting threads proceeds
      > is not defined, and may vary across implementations.
      
      This means the primitive cannot be used by the parent thread to reliably
      detect completion of all child threads.
      
      Update the parent to maintain a reference for each child thread, and to
      explicitly wait for every child thread to complete before emitting the
      final result.
      
      [1] https://docs.python.org/2/library/threading.html#lock-objects
      21781289
  25. Feb 08, 2016
    • Till Schneidereit's avatar
      Enable parallel test execution in console runner · 7ae29d49
      Till Schneidereit authored
      Adds a `-j`/`--workers-count` parameter to `tools/packaging/test262.py`, defaulting to `[number of cores] - 1`.
      
      Speeds up running the test suite by about ~3x on my 4-core machine, with the SpiderMonkey shell. This could certainly be optimized more by just appending test results to per-thread lists and merging them at the end, but it's better than nothing.
      7ae29d49
Loading