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

Fix issues in runner tests #4962

Merged
merged 4 commits into from
Nov 1, 2023
Merged

Fix issues in runner tests #4962

merged 4 commits into from
Nov 1, 2023

Conversation

leoyvens
Copy link
Collaborator

@leoyvens leoyvens commented Nov 1, 2023

These were likely caused by an update to the graph-cli and -ts versions used by the tests. This updates the tests and tries to make them more robust to this situation in the future.

While it would be nice to test them in isolation, here it is just
making these high-level tests too sensitive to unrelated changes.
This changed probably because graph-cli and -ts were updated.
Previously it would break whenever the graft base subgraph id would change,
now that id is updated automatically.
@leoyvens
Copy link
Collaborator Author

leoyvens commented Nov 1, 2023

CI got an error on poi_for_deterministically_failed_sg, retrying.

Co-authored-by: Saihajpreet Singh <saihajpreet.singh@gmail.com>
@leoyvens leoyvens merged commit e40526f into master Nov 1, 2023
5 of 7 checks passed
@leoyvens leoyvens deleted the leo/runner-tests-less-flaky branch November 1, 2023 20:20
zorancv pushed a commit that referenced this pull request Nov 13, 2023
* tests: Don't compare WASM backtraces

While it would be nice to test them in isolation, here it is just
making these high-level tests too sensitive to unrelated changes.

* tests: Test PoI as hex and update to current value

This changed probably because graph-cli and -ts were updated.

* tests: Make `data_source_revert` more robust to code updates

Previously it would break whenever the graft base subgraph id would change,
now that id is updated automatically.

* Update tests/runner-tests/data-source-revert/package.json

Co-authored-by: Saihajpreet Singh <saihajpreet.singh@gmail.com>

---------

Co-authored-by: Saihajpreet Singh <saihajpreet.singh@gmail.com>
zorancv added a commit that referenced this pull request Nov 13, 2023
* Update protobuf structure

* Log progress message once every 30 sec.

* superfluous trace_id

* better formating

* spelling

* humane representation of time

* concise logs

* factor out the log string code

* move loging code to other file

* don't allow multiple trace_id in logs

* proper handling of trace_id

* v0.33.0 (#4886)

* cargo: update workspace crates' version to v0.33.0

* update NEWS.md for v0.33.0

* Add new API Version to validate when setting fields not defined in the schema  (#4894)

* build(deps): bump chrono from 0.4.26 to 0.4.31 (#4876)

Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.26 to 0.4.31.
- [Release notes](https://github.com/chronotope/chrono/releases)
- [Changelog](https://github.com/chronotope/chrono/blob/main/CHANGELOG.md)
- [Commits](chronotope/chrono@v0.4.26...v0.4.31)

---
updated-dependencies:
- dependency-name: chrono
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump webpki from 0.22.0 to 0.22.1 (#4857)

Bumps [webpki](https://github.com/briansmith/webpki) from 0.22.0 to 0.22.1.
- [Commits](https://github.com/briansmith/webpki/commits)

---
updated-dependencies:
- dependency-name: webpki
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* runtime: only include valid fields in entity for store_set

* graph, runtime: add new apiVersion to validate fields not defined in the schema

* graph: update tests for setting invalid field

* tests: add runner tests for undefined field setting validation in apiVersion 0.0.8

* graph: add check_invalid_fields method to HostExports

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* update NEWS.md

* tests: add .gitignore for api-version test

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* docker: upgrade cloudbuild machineType

* fix(graphql): change CDN to JS Deliver for GraphiQL (#4941)

* fix(graphql): change CDN to JS Deliver for GraphiQL

* fix(graphql): add crossorigin prop

* build(deps): bump toml from 0.7.6 to 0.8.4

Bumps [toml](https://github.com/toml-rs/toml) from 0.7.6 to 0.8.4.
- [Commits](toml-rs/toml@toml-v0.7.6...toml-v0.8.4)

---
updated-dependencies:
- dependency-name: toml
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): bump semver from 1.0.18 to 1.0.20

Bumps [semver](https://github.com/dtolnay/semver) from 1.0.18 to 1.0.20.
- [Release notes](https://github.com/dtolnay/semver/releases)
- [Commits](dtolnay/semver@1.0.18...1.0.20)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* docs: Update information about `graphman config check`

* docs: Add a guide for sharding

* tests: Update runner-tests package.json

* fix(tests): yarn workspace to install all subfolders

* ci: update to node 20

* fix(graphql): add crossorigin prop (#4948)

* Fix issues in runner tests (#4962)

* tests: Don't compare WASM backtraces

While it would be nice to test them in isolation, here it is just
making these high-level tests too sensitive to unrelated changes.

* tests: Test PoI as hex and update to current value

This changed probably because graph-cli and -ts were updated.

* tests: Make `data_source_revert` more robust to code updates

Previously it would break whenever the graft base subgraph id would change,
now that id is updated automatically.

* Update tests/runner-tests/data-source-revert/package.json

Co-authored-by: Saihajpreet Singh <saihajpreet.singh@gmail.com>

---------

Co-authored-by: Saihajpreet Singh <saihajpreet.singh@gmail.com>

* store/test-store: test more types for DataSource context in manifest

* server/index-node : lazy load features from manifest when a subgraph is not deployed

* [Feature] Add support for `endBlock` in data sources (#4787)

* graph,chain,store/test-store : Allow new param `endBlock` in manifest

* core,graph,store: ignore end_block reached datasources in match_and_decode, include them in processed datasources

* tests : add runner tests for end-block

* core: move TriggerFilter construction into SubgraphRunner.run_inner

* core: filter out endBlock reached subgraphs when constructing TriggerFilter

* chain,core: refactor endBlock implementation

* refactor `SubgraphRunner.run_inner` to extract `build_filter`

* core : handle reverts for endBlock

* chain,graph: set min_spec_version requirements for endBlock

* core: refaction `build_filter`

* tests: runner test for endblock on reorg

* core: restart block stream in the next block for endblock reached ds

* graph: bump specVersion requirement for endBlock

* core: refactor build_filter logic

* core, tests, graph : make TriggerFilters testable

* chain/startknet: endBlock support for starknet

* chain,core,graph: refactor end_block implementation

* core: refactor build_filter

* Add comments for end-block runner tests

* graph, runtime, chain: Add GasMetrics for DIPS experiments

* graph: refactor GasCounter for trackiing gas metrics, add a new env for gas metrics

* tests: Revamp the integration tests

With these changes, we do not use truffler/ganache anymore. Tests are now
written as normal Rust tests. See `tests/README.md` for details

* runner tests: Do not clobber api-version tests

Two different tests are run in the same directory; make sure that the files
they generate and use do not clobber each other.

* workflows: Do not compile with --verbose for runner tests

* graph, store: Track connection wait time in the trace

There are other places during query execution where we might be waiting for
connections, but this at least records the times for getting the actual
data.

* graph, store: Track permit wait times in query traces

* fix: Increase RPC base backoff (#4984)

* fix: Increase RPC base backoff

* fix: Add 'stack underflow' to deterministic geth errors

* Make `SubstreamsBlockIngestor` start at chain's head if no cursor already exist (#4951)

Fixes #4942

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Zoran Cvetkov <zoran@edgeandnode.com>
Co-authored-by: Krishnanand V P <44740264+incrypto32@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: incrypto32 <vpkrishnanand@gmail.com>
Co-authored-by: Saihajpreet Singh <saihajpreet.singh@gmail.com>
Co-authored-by: David Lutterkort <lutter@watzmann.net>
Co-authored-by: Leonardo Yvens <leoyvens@gmail.com>
Co-authored-by: Matthieu Vachon <matt@streamingfast.io>
YaroShkvorets added a commit to YaroShkvorets/graph-node that referenced this pull request Nov 17, 2023
fixes graphprotocol#4976

graphql: Include introspection fields in error (graphprotocol#4968)

Include `__schema` and `__type` part of the result when there is an indexing error and the error policy is deny.

build(deps): bump proc-macro2 from 1.0.66 to 1.0.69

Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.66 to 1.0.69.
- [Release notes](https://github.com/dtolnay/proc-macro2/releases)
- [Commits](dtolnay/proc-macro2@1.0.66...1.0.69)

---
updated-dependencies:
- dependency-name: proc-macro2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

store/test-store: test more types for DataSource context in manifest

server/index-node : lazy load features from manifest when a subgraph is not deployed

[Feature] Add support for `endBlock` in data sources (graphprotocol#4787)

* graph,chain,store/test-store : Allow new param `endBlock` in manifest

* core,graph,store: ignore end_block reached datasources in match_and_decode, include them in processed datasources

* tests : add runner tests for end-block

* core: move TriggerFilter construction into SubgraphRunner.run_inner

* core: filter out endBlock reached subgraphs when constructing TriggerFilter

* chain,core: refactor endBlock implementation

* refactor `SubgraphRunner.run_inner` to extract `build_filter`

* core : handle reverts for endBlock

* chain,graph: set min_spec_version requirements for endBlock

* core: refaction `build_filter`

* tests: runner test for endblock on reorg

* core: restart block stream in the next block for endblock reached ds

* graph: bump specVersion requirement for endBlock

* core: refactor build_filter logic

* core, tests, graph : make TriggerFilters testable

* chain/startknet: endBlock support for starknet

* chain,core,graph: refactor end_block implementation

* core: refactor build_filter

* Add comments for end-block runner tests

graph, runtime, chain: Add GasMetrics for DIPS experiments

graph: refactor GasCounter for trackiing gas metrics, add a new env for gas metrics

tests: Revamp the integration tests

With these changes, we do not use truffler/ganache anymore. Tests are now
written as normal Rust tests. See `tests/README.md` for details

runner tests: Do not clobber api-version tests

Two different tests are run in the same directory; make sure that the files
they generate and use do not clobber each other.

workflows: Do not compile with --verbose for runner tests

graph, store: Track connection wait time in the trace

There are other places during query execution where we might be waiting for
connections, but this at least records the times for getting the actual
data.

graph, store: Track permit wait times in query traces

fix: Increase RPC base backoff (graphprotocol#4984)

* fix: Increase RPC base backoff

* fix: Add 'stack underflow' to deterministic geth errors

Make `SubstreamsBlockIngestor` start at chain's head if no cursor already exist (graphprotocol#4951)

Fixes graphprotocol#4942

Log the progress of substreams (graphprotocol#4935)

* Update protobuf structure

* Log progress message once every 30 sec.

* superfluous trace_id

* better formating

* spelling

* humane representation of time

* concise logs

* factor out the log string code

* move loging code to other file

* don't allow multiple trace_id in logs

* proper handling of trace_id

* v0.33.0 (graphprotocol#4886)

* cargo: update workspace crates' version to v0.33.0

* update NEWS.md for v0.33.0

* Add new API Version to validate when setting fields not defined in the schema  (graphprotocol#4894)

* build(deps): bump chrono from 0.4.26 to 0.4.31 (graphprotocol#4876)

Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.26 to 0.4.31.
- [Release notes](https://github.com/chronotope/chrono/releases)
- [Changelog](https://github.com/chronotope/chrono/blob/main/CHANGELOG.md)
- [Commits](chronotope/chrono@v0.4.26...v0.4.31)

---
updated-dependencies:
- dependency-name: chrono
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump webpki from 0.22.0 to 0.22.1 (graphprotocol#4857)

Bumps [webpki](https://github.com/briansmith/webpki) from 0.22.0 to 0.22.1.
- [Commits](https://github.com/briansmith/webpki/commits)

---
updated-dependencies:
- dependency-name: webpki
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* runtime: only include valid fields in entity for store_set

* graph, runtime: add new apiVersion to validate fields not defined in the schema

* graph: update tests for setting invalid field

* tests: add runner tests for undefined field setting validation in apiVersion 0.0.8

* graph: add check_invalid_fields method to HostExports

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* update NEWS.md

* tests: add .gitignore for api-version test

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* docker: upgrade cloudbuild machineType

* fix(graphql): change CDN to JS Deliver for GraphiQL (graphprotocol#4941)

* fix(graphql): change CDN to JS Deliver for GraphiQL

* fix(graphql): add crossorigin prop

* build(deps): bump toml from 0.7.6 to 0.8.4

Bumps [toml](https://github.com/toml-rs/toml) from 0.7.6 to 0.8.4.
- [Commits](toml-rs/toml@toml-v0.7.6...toml-v0.8.4)

---
updated-dependencies:
- dependency-name: toml
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): bump semver from 1.0.18 to 1.0.20

Bumps [semver](https://github.com/dtolnay/semver) from 1.0.18 to 1.0.20.
- [Release notes](https://github.com/dtolnay/semver/releases)
- [Commits](dtolnay/semver@1.0.18...1.0.20)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* docs: Update information about `graphman config check`

* docs: Add a guide for sharding

* tests: Update runner-tests package.json

* fix(tests): yarn workspace to install all subfolders

* ci: update to node 20

* fix(graphql): add crossorigin prop (graphprotocol#4948)

* Fix issues in runner tests (graphprotocol#4962)

* tests: Don't compare WASM backtraces

While it would be nice to test them in isolation, here it is just
making these high-level tests too sensitive to unrelated changes.

* tests: Test PoI as hex and update to current value

This changed probably because graph-cli and -ts were updated.

* tests: Make `data_source_revert` more robust to code updates

Previously it would break whenever the graft base subgraph id would change,
now that id is updated automatically.

* Update tests/runner-tests/data-source-revert/package.json

Co-authored-by: Saihajpreet Singh <saihajpreet.singh@gmail.com>

---------

Co-authored-by: Saihajpreet Singh <saihajpreet.singh@gmail.com>

* store/test-store: test more types for DataSource context in manifest

* server/index-node : lazy load features from manifest when a subgraph is not deployed

* [Feature] Add support for `endBlock` in data sources (graphprotocol#4787)

* graph,chain,store/test-store : Allow new param `endBlock` in manifest

* core,graph,store: ignore end_block reached datasources in match_and_decode, include them in processed datasources

* tests : add runner tests for end-block

* core: move TriggerFilter construction into SubgraphRunner.run_inner

* core: filter out endBlock reached subgraphs when constructing TriggerFilter

* chain,core: refactor endBlock implementation

* refactor `SubgraphRunner.run_inner` to extract `build_filter`

* core : handle reverts for endBlock

* chain,graph: set min_spec_version requirements for endBlock

* core: refaction `build_filter`

* tests: runner test for endblock on reorg

* core: restart block stream in the next block for endblock reached ds

* graph: bump specVersion requirement for endBlock

* core: refactor build_filter logic

* core, tests, graph : make TriggerFilters testable

* chain/startknet: endBlock support for starknet

* chain,core,graph: refactor end_block implementation

* core: refactor build_filter

* Add comments for end-block runner tests

* graph, runtime, chain: Add GasMetrics for DIPS experiments

* graph: refactor GasCounter for trackiing gas metrics, add a new env for gas metrics

* tests: Revamp the integration tests

With these changes, we do not use truffler/ganache anymore. Tests are now
written as normal Rust tests. See `tests/README.md` for details

* runner tests: Do not clobber api-version tests

Two different tests are run in the same directory; make sure that the files
they generate and use do not clobber each other.

* workflows: Do not compile with --verbose for runner tests

* graph, store: Track connection wait time in the trace

There are other places during query execution where we might be waiting for
connections, but this at least records the times for getting the actual
data.

* graph, store: Track permit wait times in query traces

* fix: Increase RPC base backoff (graphprotocol#4984)

* fix: Increase RPC base backoff

* fix: Add 'stack underflow' to deterministic geth errors

* Make `SubstreamsBlockIngestor` start at chain's head if no cursor already exist (graphprotocol#4951)

Fixes graphprotocol#4942

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Zoran Cvetkov <zoran@edgeandnode.com>
Co-authored-by: Krishnanand V P <44740264+incrypto32@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: incrypto32 <vpkrishnanand@gmail.com>
Co-authored-by: Saihajpreet Singh <saihajpreet.singh@gmail.com>
Co-authored-by: David Lutterkort <lutter@watzmann.net>
Co-authored-by: Leonardo Yvens <leoyvens@gmail.com>
Co-authored-by: Matthieu Vachon <matt@streamingfast.io>

store: fix graphman not accepting table names

runner tests: Tag all log lines with the test name

runner tests: Wait longer for subgraphs to reach stop block

Also, make it clearer when a subgraph doesn't reach the stop block in the
allotted time.

graph: Qualify uses of graphql parser types with s::

graph: Move InputSchema validations over from Schema

These validations only makes sense for input schemas, not generic GraphQL
schemas

graph, store: Remove InputSchema::new

graph: Inline InputSchema::create into InputSchema::parse

all: Fix test schemas

Since validation of InputSchema isn't mandatory, many of the schemas we use
in our tests actually failed validation. This commit addresses that.

graph: Make it impossible to construct an unvalidated InputSchema

graph: Validate the id field of object types

This hadn't been done before, though in practice it was probably never
violated (presumably since graph-cli enforces such rules, and because
trying to deploy such a schema would end badly)

The `examples/validate.rs` is a tool that makes it possible to bulk
validate subgraph schemas.

Add more labels to `deployment_sync_secs` (graphprotocol#4965)

* initial try

* small fix

* add shart parameter in tests

* fmt

---------

Co-authored-by: Zoran Cvetkov <zoran@edgeandnode.com>

tests: Make how long runner tests wait for sync configurable

Set it to 10 minutes for github actions. Default is 1 minute

build(deps): bump protobuf-parse from 3.2.0 to 3.3.0

Bumps [protobuf-parse](https://github.com/stepancheg/rust-protobuf) from 3.2.0 to 3.3.0.
- [Changelog](https://github.com/stepancheg/rust-protobuf/blob/master/CHANGELOG.md)
- [Commits](stepancheg/rust-protobuf@v3.2.0...v3.3.0)

---
updated-dependencies:
- dependency-name: protobuf-parse
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

build(deps): bump sha2 from 0.10.7 to 0.10.8

Bumps [sha2](https://github.com/RustCrypto/hashes) from 0.10.7 to 0.10.8.
- [Commits](RustCrypto/hashes@sha2-v0.10.7...sha2-v0.10.8)

---
updated-dependencies:
- dependency-name: sha2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

docs: fix typos

build(deps): bump atomic_refcell from 0.1.12 to 0.1.13

Bumps [atomic_refcell](https://github.com/bholley/atomic_refcell) from 0.1.12 to 0.1.13.
- [Commits](https://github.com/bholley/atomic_refcell/commits)

---
updated-dependencies:
- dependency-name: atomic_refcell
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

build(deps): bump termcolor from 1.2.0 to 1.4.0

Bumps [termcolor](https://github.com/BurntSushi/termcolor) from 1.2.0 to 1.4.0.
- [Commits](BurntSushi/termcolor@1.2.0...1.4.0)

---
updated-dependencies:
- dependency-name: termcolor
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

docs: Fix typos

fix typos
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.

3 participants