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

IronHawk Integration Tests: GETEX #1525

Open
4 tasks
arpitbbhayani opened this issue Feb 26, 2025 · 4 comments
Open
4 tasks

IronHawk Integration Tests: GETEX #1525

arpitbbhayani opened this issue Feb 26, 2025 · 4 comments

Comments

@arpitbbhayani
Copy link
Contributor

We reimplemented the core of the DiceDB engine and re-wrote - the wire protocol, execution engine, and config management. This rewrite helped us gain 32% throughput over our existing benchmark.

To make DiceDB stable even after 100s of changes, we have to put effort
into making sure we have a comprehensive integration test suite for each command. This issue will be used to cover the port and fixes for integration tests related to the command CMD.

Here are the pre-requisite

  1. setup DiceDB server locally from the source - instructions
  2. setup DiceDB Go SDK locally from the source - instructions
  3. refer to the Pointing to local checked-out dicedb-gosection inREADME`.

Start the DiceDB server with IronHawk engine

$ go run main.go --engine ironhawk --log-level debug

Setting up Integration Tests

  1. Make sure the DiceDB server is running. This is essential for you to run the tests
  2. Integration tests of all the commands can be found under tests/commands/ironhawk with the name cmd_test.go.
  3. For the command cmd find the tests
  4. Run the test function using the following command
$ CGO_ENABLED=1 go test -race -count=1  ./tests/commands/ironhawk/setup.go ./tests/commands/ironhawk/main_test.go ./tests/commands/ironhawk/getex_test.go

Things need to be done

  1. Fix any dependency error (refer set_test.go file)
  2. Fix any execution error (refer set_test.go file)
  3. There are some utility functions written, use them, but as per the set_test.go file.

Ideally, all the tests should pass. If some are failing

  1. either fix them (if you think it is a bug in the tests)
  2. or raise a bug if you think there is an implementation mistake

Eventually, we need 100% integration test coverage for all the commands to
prove that DiceDB is stable and production-ready.

If you find any other bug while you are implementing it, you can either

  1. fix it yourself and submit it in a new PR
  2. raise a GitHub issue

Follow the contribution guidelines

These are general guidelines to follow before you submit a patch. Please mark them as done
once you complete them

@bipoool
Copy link
Contributor

bipoool commented Feb 26, 2025

Hey @arpitbbhayani
I was working on this one as well. Are you going to pick this up yourself?

@arpitbbhayani
Copy link
Contributor Author

Nope. Feel free to pick this up. @bipoool

@aasifkhan7
Copy link
Contributor

@arpitbbhayani I've opened a PR for this: #1546

@aasifkhan7
Copy link
Contributor

@arpitbbhayani Can this issue be closed since the PR #1546 is merged now?

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

No branches or pull requests

3 participants