sjbarag / brs

An interpreter for the BrightScript language that runs on non-Roku platforms.
MIT License
113 stars 43 forks source link

Windows builds #391

Open TwitchBronBron opened 4 years ago

TwitchBronBron commented 4 years ago

Could we update the CircleCI builds to also run on Windows? Currently there are 3 tests that are failing on my local windows machine, but those tests pass when running on CI and also pass on my linux VM. It would be good to catch cross-platform bugs during the CI process before PRs are accepted.

TwitchBronBron commented 4 years ago

Here is the output from my test command on Windows. I don't have time to fix them, but perhaps you will be able to quickly see the issue?


Summary of all failing tests
 FAIL  test/stdlib/File.test.js (5.692s)
  ● global file I/O functions › MatchFiles › patterns › escaped special characters

    expect(received).toEqual(expected) // deep equality

    - Expected
    + Received

    - Array [
    -   BrsString {
    -     "kind": 3,
    -     "value": "b*a?d n\\a[me",
    -   },
    - ]
    + Array []

      349 |                 );
      350 |                 expect(result).toBeInstanceOf(RoArray);
    > 351 |                 expect(result.elements).toEqual([new BrsString("b*a?d n\\a[me")]);
          |                                         ^
      352 |             });
      353 |         });
      354 |     });

      at Object.test (test/stdlib/File.test.js:351:41)

 FAIL  test/e2e/BrsComponents.test.js (6.078s)
  ● end to end brightscript functions › components/customComponent.brs

    expect(received).toEqual(expected) // deep equality

    - Expected
    + Received

      Array [
        "node.baseBoolField: ",
    -   "false",
    +   "invalid",
        "node.baseIntField: ",
    -   "0",
    +   "invalid",
        "node.normalBoolField: ",
    -   "true",
    +   "invalid",
        "node.advancedStringField: ",
    -   "advancedField!",
    +   "invalid",
        "node.advancedIntField: ",
    -   "12345",
    +   "invalid",
        "node child count is: ",
    -   "6",
    -   "child id is: ",
    -   "normalLabel",
    -   "otherNode child count is: ",
    -   "3",
    -   "anotherNode child count is: ",
    -   "1",
    -   "baseRectangle width: ",
    -   "100",
    -   "baseRectangle height: ",
    -   "200",
      ]

      292 |         await execute([resourceFile("components", "customComponent.brs")], outputStreams);
      293 | 
    > 294 |         expect(allArgs(outputStreams.stdout.write).filter(arg => arg !== "\n")).toEqual([
          |                                                                                 ^
      295 |             "node.baseBoolField: ",
      296 |             "false",
      297 |             "node.baseIntField: ",

      at Object.test (test/e2e/BrsComponents.test.js:294:81)

  ● end to end brightscript functions › components/componentExtension.brs

    expect(received).toEqual(expected) // deep equality

    - Expected
    + Received

    - Array [
    -   "BaseChild init",
    -   "BaseComponent init",
    -   "ExtendedComponent start",
    -   "ExtendedChild init",
    -   "ExtendedComponent init",
    -   "ExtendedComponent start",
    - ]
    + Array []

      322 |         await execute([resourceFile("components", "componentExtension.brs")], outputStreams);
      323 | 
    > 324 |         expect(allArgs(outputStreams.stdout.write).filter(arg => arg !== "\n")).toEqual([
          |                                                                                 ^
      325 |             "BaseChild init",
      326 |             "BaseComponent init",
      327 |             "ExtendedComponent start",

      at Object.test (test/e2e/BrsComponents.test.js:324:81)