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: DEL #1484

Open
4 tasks
arpitbbhayani opened this issue Feb 11, 2025 · 1 comment · May be fixed by #1515
Open
4 tasks

IronHawk Integration Tests: DEL #1484

arpitbbhayani opened this issue Feb 11, 2025 · 1 comment · May be fixed by #1515

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 DEL.

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 del_test.go.
  3. For the command DEL find the tests
  4. Run the test function using the following command
$ TEST_FUNC=^TestSet$ make test-one

Replace the name of the function with whatever the name is in your del_test.go file.
Note the ^ and $ in the TEST_FUNC variable. It is a regex and this way, the command
executes only one function which is TestSet.

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

@ChetanNagane
Copy link

Hi, would like to pick this one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants