Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Putting a few things in order #658

Merged
merged 36 commits into from Aug 1, 2020
Merged

Putting a few things in order #658

merged 36 commits into from Aug 1, 2020

Conversation

vrurg
Copy link
Contributor

@vrurg vrurg commented Jul 27, 2020

In elaboration of #657

Aside from evaluating and fixing the tests, this PR introduces a slight change to fudge by extending the eval verb functionality to suppress EVAL-thrown exceptions and produce as many flunk as necessary if EVAL fails. All this done under todo to make harness report TODO passed if the evaled tests are passing.

@tbrowder
Copy link
Member

@vrurg, good on you! That's much improved, and a good example for future tests.

vrurg added 17 commits July 28, 2020 21:26
Do everything on a in-memory object. After all, the file content is
`slurp`ed into one anyway.
The main tests are fudged with `skip` with which it is easy to miss when
dispatching gets fixed. The canary test is fudged with `todo` and will
result in a notification when it's about time to unfudge everything.
The test is fudged as a `todo`
And add it to spectest.data.

Two tests are fudged for JVM backend.
`EVAL` throws when compilation fails. A `try` is required to contain the
exception and pass control over to the subsequent `skip` statement.

TODOing the tests would be much more preferable but I don't see a quick
solution to implement it.
Added two canary tests for `&method` and `::=`.
Fudged with `eval` and added a canary test.
Passing on both moar and jvm backends
The test was erroneously considering `EVAL` to be the same scope as
surrounding block. Whereas in fact it's a scope on its own.
Wonder if the TODO'ed test has to be the way it is expected to be. The
current state of things seems rather logical to me.
The test seems to be extremely outdated with traces of early Perl6
design patters. Besides, the test now passes as whole.
vrurg added 10 commits July 29, 2020 22:12
Requires Raku/nqp#650 and rakudo/rakudo#3834 to pass.

I have removed trait `described` because the final implementation of
traits doesn't need covering two different trait routine signatures.

Renamed the role from `description` to `Description` because trait `is`
can't tell the difference between the trait and the role to pun because
of the same name used for both.

Because a trait is applied to a parametric role, not the role group,
test against the first group candidate.
- change trait signatures to match v6.c requirements
- rename role `doc` into `Doc` for `is` to be able to distinguish
  between the two
- because the role is applied to the container, invoke the `doc` method
  on `.VAR`
Export semantics requires a `Map` to be returned by `sub EXPORT` in
order to preserve containers of the exported symbols.
It's a flapper for `make spectest`. Besides, it only tests on macOS and
perhaps should be rewritten.
If somesing is eval-fudged because of a non-implemented or a broken
feature then how do we know when the problem is fixed? I mean a scenario
when the fix done as a result of a ticket being fixed or a similar case.

Now fudge prepends the eval'ed code with a `todo` and instead of `skip`
produces as many `flunk` as many tests were wrapped. So, harness will
inform us about passing TODOs when this happens.
Version pragma must be the first statement.
Passing on both moar and jvm.
- EVAL only the generated pod
- Group tests into subtests
Both tests are likely to utilize new syntax when `RakuAST` is released.
- there is no phaser `START`
- because of returning a `Scalar` at compile time and actual
  interpolation taking place at runtime both test for `BEGIN` and
  `CHECK` were ending up testing the same string. De-containerizing the
  return value resolves the problem
Have certain doubts about the method implementation. Therefore fudged in
a way to get a "TODO passed" notification for the `leave` keyword when
it eventually works.
Reflect the changed behavior of eval
@vrurg vrurg changed the title [WIP] Putting a few things in order Putting a few things in order Aug 1, 2020
@vrurg vrurg merged commit 8f54457 into master Aug 1, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants