~ruther/guix-local

90205b625e947b4ff5286696c8a9d221a2e0326b — Christopher Baines 8 years ago a469c69
gnu: Run some tests in the mongodb package check phase.

Previously the mongodb dbtests and unittests were only built, and not actually
run.

* gnu/packages/databases.scm (mongodb)[native-inputs]: Add python2-minimal,
  python2-pymongo and python2-pyyaml for running the resmoke.py program, and
  add tzdata as some tests fail without this.
  [arguments]: Run the tests through the resmoke.py script in the check phase,
  set TZDIR as a couple of tests seem to depend on this, add a comment about
  the resource requirements of the tests, as they require a large amount of
  disk space, and disable the async_stream_test, as it seems to hang.
1 files changed, 27 insertions(+), 6 deletions(-)

M gnu/packages/databases.scm
M gnu/packages/databases.scm => gnu/packages/databases.scm +27 -6
@@ 412,7 412,11 @@ applications.")
       ("snappy" ,snappy)))
    (native-inputs
     `(("valgrind" ,valgrind)
       ("perl" ,perl)))
       ("perl" ,perl)
       ("python" ,python2-minimal)
       ("python2-pymongo" ,python2-pymongo)
       ("python2-pyyaml" ,python2-pyyaml)
       ("tzdata" ,tzdata)))
    (arguments
     `(#:scons ,scons-python2
       #:phases


@@ 460,12 464,29 @@ applications.")
                               ,@common-options
                               "mongod" "mongo" "mongos")))))
           (replace 'check
             (lambda* (#:key tests? #:allow-other-keys)
             (lambda* (#:key tests? inputs #:allow-other-keys)
               (setenv "TZDIR"
                       (string-append (assoc-ref inputs "tzdata")
                                      "/share/zoneinfo"))
               (or (not tests?)
                   (zero? (apply system*
                                 `("scons"
                                   ,@common-options
                                   "dbtest" "unittests"))))))
                   ;; Note that with the tests, especially the unittests, the
                   ;; build can take up to ~45GB of space, as many tests are
                   ;; individual executable files, with some being hundreds of
                   ;; megabytes in size.
                   (begin
		     (apply
                      invoke `("scons" ,@common-options "dbtest" "unittests"))
                     (substitute* "build/unittests.txt"
                       ;; TODO: Don't run the async_stream_test, as it hangs
                       (("^build\\/opt\\/mongo\\/executor\\/async\\_stream\\_test\n$")
                        "")
                       ;; TODO: This test fails
                       ;; Expected 0UL != disks.size() (0 != 0) @src/mongo/util/procparser_test.cpp:476
                       (("^build\\/opt\\/mongo\\/util\\/procparser\\_test\n$")
                        ""))
		     (invoke "python" "buildscripts/resmoke.py"
			     "--suites=dbtest,unittests"
                             (format #f  "--jobs=~a" (parallel-job-count)))))))
           (replace 'install
             (lambda _
               (let ((bin  (string-append (assoc-ref %outputs "out") "/bin")))