Search Unity

Bug Burst 1.8.4 Tests fail when embedding package

Discussion in 'Burst' started by Chaosed0, Jun 8, 2023.

  1. Chaosed0

    Chaosed0

    Joined:
    Jun 19, 2013
    Posts:
    23
    Because of this bug, we are embedding Burst as a package within the Packages directory: https://forum.unity.com/threads/bur...r-system-argumentexception-in-editor.1436614/

    However, this makes the Burst tests show up in our test runner, and makes them get run as part of our automated pull request verification process. We are getting a test failure in
    TestInstructionsPresent(ARM)
    that looks like this:

    Code (CSharp):
    1. TestInstructionsPresent(ARM) (543.843s)
    2. ---
    3. 14 missing instructions, see log. Add missing instructions and call both this test and TestInfo.
    4. ---
    5. at BurstDisassemblerCoreInstructionTests.TestInstructionsPresent (BurstDisassemblerCoreInstructionTests+Chooser asmKind) [0x00277] in C:\Users\galvanicgames\Documents\repos\wizgun\Packages\com.unity.burst\Tests\Editor\BurstDisassemberCoreInstructionTests.cs:186
    6. ---
    7. ==== Beginning test TestInstructionsPresent(ARM) ====
    8. Token "uxtah" was not recognised as instruction for ARM (Found in job ElectricArcImpactSystem.CheckApplyElectricArcJob - (IJobParallelForDefer)).
    9. Token "ldrex" was not recognised as instruction for ARM (Found in job ElectricArcImpactSystem.CheckApplyElectricArcJob - (IJobParallelForDefer)).
    10. Token "strex" was not recognised as instruction for ARM (Found in job ElectricArcImpactSystem.CheckApplyElectricArcJob - (IJobParallelForDefer)).
    11. Token "vrev64.32" was not recognised as instruction for ARM (Found in job GGPhys.Collision.EntityCollisionSystem.NarrowPhaseBuildEntitiesContactsJob - (IJobParallelForDefer)).
    12. Token "vstmia" was not recognised as instruction for ARM (Found in job AIFleeHazardsSystem.OnEnteredJob - (IJobForStateEnters`1)).
    13. Token "smlabb" was not recognised as instruction for ARM (Found in job AIFleePlayerSystem.StartPathingJob - (IJobForStateEnters`1)).
    14. Token "itee" was not recognised as instruction for ARM (Found in job AIShieldingSystem.StartShieldingJob - (IJobForStateEnters`1)).
    15. Token "ittee" was not recognised as instruction for ARM (Found in job UpdateAggressionSystem.LookForTargetOnStateExitJob - (IJobForStateExits`1)).
    16. Token "pkhbt" was not recognised as instruction for ARM (Found in job DialogueSystem.CheckDialogueEventsJob - (IJobForEach1`2)).
    17. Token "pkhbtgt" was not recognised as instruction for ARM (Found in job DialogueSystem.CheckDialogueEventsJob - (IJobForEach1`2)).
    18. Token "vldmia" was not recognised as instruction for ARM (Found in job TimelineSystem.CheckEntityDiedJob - (GGECS.Triggers.ITriggerJob0`3[EntityDiedTrigger,PlayTimelineOnDeathComp,PositionComp])).
    19. Token "rrx" was not recognised as instruction for ARM (Found in job xxHash3Tests.xxHash3Hash64SanityCheckJob - (IJob)).
    20. Token "umaal" was not recognised as instruction for ARM (Found in job xxHash3Tests.xxHash3Hash64SanityCheckJob - (IJob)).
    21. Token "smmul" was not recognised as instruction for ARM (Found in job DeterminismTest.CreatePushPhysicsEntitiesSystem.ApplyForceJob - (IJobParallelFor)).
    There's a bunch of question marks here as to what we should do, but I've found the following to be true:
    • Taking a look in the source, it does indeed look like these instructions are missing, but from a cursory search online it appears that these instructions are valid ARM instructions.
    • These tests don't show up unless we embed the Burst package, meaning without that above workaround, we wouldn't be running the tests anyway.
    • If the Burst package was running its own tests without being inside our project, it wouldn't be running on the jobs within the error above, so it wouldn't fail.
    We do eventually plan to target ARM (via Switch). Should we be worried about these errors? Is it okay if we simply delete the tests directory when we copy the Burst package over?
     
    robert_galvanic likes this.
  2. tim_jones

    tim_jones

    Unity Technologies

    Joined:
    May 2, 2019
    Posts:
    287
    That's fine to delete the tests directory when you embed the Burst package. I think that's all you can do - it looks like it's not possible to disable tests for embedded packages.

    Those errors mean that if you tried to use the Burst Inspector window to view the disassembly for those particular jobs, then you wouldn't get full syntax highlighting for it. Nothing too serious. I've logged an internal issue for us to add those particular instructions to our Arm instruction syntax highlighting.
     
  3. Chaosed0

    Chaosed0

    Joined:
    Jun 19, 2013
    Posts:
    23
    Only saw this just now, thanks for the confirmation that it is okay to delete the tests directory! We will go with that solution.