-
Notifications
You must be signed in to change notification settings - Fork 97
MongoRocks' CI
When we say mongoRocks' CI, we mean mongoDB's javascript tests and some of mongoRocks' cpptests in fact. as per this link.
To build mongoRocks' unittests, you'd build unittests by the command below:
scons unittests
Then you will get
- storage_rocks_index_test
- storage_rocks_record_store_test
- storage_rocks_recovery_unit_test
in build directory. These are binaries so you can directly execute them.
Mongodb's javascript tests are in mongodb's repo, not in mongoRocks' repo. So naturally, the javascript tests are designed for Mmap and WiredTiger engine. But fortunally, only a small set of javascript tests are not passed.
To run jstests, you should copy resmokelist and resmoke.sh to mongo's root build dir. and execute
sh resmoke.sh
The resmokelist will be extended when more jstests are analysed. It's encouraged that you run more jstests and make an issue to describe which suite is not passed, how to make it pass, pass it, add it into resmokelist and make a merge request.
It is known that some jstests fail with CheckReplDBHash, it fails because jstests hardcode a failpoint name. To workaround, do these things:
- cd {build_root_dir}
- find . -type f -name '*.js' |xargs grep WTPreserveSnapshotHistoryIndefinitely
- replace these tags with RocksPreserveSnapshotHistoryIndefinitely
this will help with run_check_repl_dbhash_background.js
github's built-in CI, as per this link says it has 2cores/7GB ram and 14GB disk space, which I believe in this env, a full compiling should take more than 5 hours, and the internal files generated by compiling definitely exceeds the disk space.
To run mongodb's CI, I suggest you prepare a 16U32GB container/virtual machine/vps. This will cost more than 300 dollers per month on aws, which is far beyond my financial means. To donate, you may contact wolfkdy1989@gmail.com