<testsuites name="test">
  <testsuite name="#unit Validate arguments" tests="33" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:13:27" time="0.098">
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid URL type" time="0.001">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns no error for valid URL type" time="0.022">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid (no host) URL" time="0.001">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid (no protocol) URL" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid (wrong protocol) URL" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid (no path) URL" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid (no protocol, no host) URL" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid buffer size type" time="0.001">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for zero buffer size" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for float buffer size" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns no error for valid buffer size type" time="0.005">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid log type" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns no error for valid log type" time="0.005">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid mode type" time="0.001">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid mode string" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns no error for valid mode type" time="0.005">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid output type" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns no error for valid output type" time="0.005">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid parallelism type" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for zero parallelism" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for float parallelism" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns no error for valid parallelism type" time="0.004">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid request timeout type" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for zero request timeout" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for float request timout" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns no error for valid request timeout type" time="0.004">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid resume type" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns no error for valid resume type" time="0.004">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid key type" time="0.001">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for key and URL credentials supplied" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="warns for log arg in shallow mode" time="0.001">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="warns for resume arg in shallow mode" time="0.001">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="warns for parallism arg in shallow mode" time="0.001">
    </testcase>
  </testsuite>
  <testsuite name="Basic backup and restore using API" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:13:28" time="4.524">
    <testcase classname="test.Basic backup and restore using API" name="should backup animaldb to a file correctly" time="0.954">
      <system-out><![CDATA[{ total: 15 }
]]></system-out>
    </testcase>
    <testcase classname="test.Basic backup and restore using API" name="should restore animaldb to a database correctly" time="1.811">
      <system-out><![CDATA[{ total: 15 }
]]></system-out>
    </testcase>
    <testcase classname="test.Basic backup and restore using API" name="should execute a shallow mode backup successfully" time="0.635">
      <system-out><![CDATA[{ total: 11 }
]]></system-out>
    </testcase>
  </testsuite>
  <testsuite name="Basic backup and restore using API Buffer size tests using API" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:13:32" time="11.866">
    <testcase classname="test.Basic backup and restore using API Buffer size tests using API" name="should backup/restore animaldb with the same buffer size" time="4.072">
      <system-out><![CDATA[{ total: 15 }
{ total: 15 }
]]></system-out>
    </testcase>
    <testcase classname="test.Basic backup and restore using API Buffer size tests using API" name="should backup/restore animaldb with backup buffer &gt; restore buffer" time="3.444">
      <system-out><![CDATA[{ total: 15 }
{ total: 15 }
]]></system-out>
    </testcase>
    <testcase classname="test.Basic backup and restore using API Buffer size tests using API" name="should backup/restore animaldb with backup buffer &lt; restore buffer" time="3.565">
      <system-out><![CDATA[{ total: 15 }
{ total: 15 }
]]></system-out>
    </testcase>
  </testsuite>
  <testsuite name="Basic backup and restore using CLI" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:13:44" time="5.499">
    <testcase classname="test.Basic backup and restore using CLI" name="should backup animaldb to a file correctly" time="1.432">
      <system-out><![CDATA[Backup process close 0 null
]]></system-out>
    </testcase>
    <testcase classname="test.Basic backup and restore using CLI" name="should restore animaldb to a database correctly" time="2.2">
    </testcase>
    <testcase classname="test.Basic backup and restore using CLI" name="should execute a shallow mode backup successfully" time="1.078">
      <system-out><![CDATA[Backup process close 0 null
]]></system-out>
    </testcase>
  </testsuite>
  <testsuite name="Basic backup and restore using CLI Buffer size tests using CLI" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:13:49" time="14.436">
    <testcase classname="test.Basic backup and restore using CLI Buffer size tests using CLI" name="should backup/restore animaldb with the same buffer size" time="4.778">
      <system-out><![CDATA[Backup process close 0 null
]]></system-out>
    </testcase>
    <testcase classname="test.Basic backup and restore using CLI Buffer size tests using CLI" name="should backup/restore animaldb with backup buffer &gt; restore buffer" time="4.375">
      <system-out><![CDATA[Backup process close 0 null
]]></system-out>
    </testcase>
    <testcase classname="test.Basic backup and restore using CLI Buffer size tests using CLI" name="should backup/restore animaldb with backup buffer &lt; restore buffer" time="4.5">
      <system-out><![CDATA[Backup process close 0 null
]]></system-out>
    </testcase>
  </testsuite>
  <testsuite name="Compression tests using API" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:14:04" time="6.492">
    <testcase classname="test.Compression tests using API" name="should backup animaldb to a compressed file" time="0.878">
      <system-out><![CDATA[{ total: 15 }
]]></system-out>
    </testcase>
    <testcase classname="test.Compression tests using API" name="should backup and restore animaldb via a compressed file" time="2.675">
      <system-out><![CDATA[{ total: 15 }
{ total: 15 }
]]></system-out>
    </testcase>
    <testcase classname="test.Compression tests using API" name="should backup and restore animaldb via a compressed stream" time="2.155">
      <system-out><![CDATA[{ total: 15 }
{ total: 15 }
]]></system-out>
    </testcase>
  </testsuite>
  <testsuite name="Compression tests using CLI" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:14:10" time="8.586">
    <testcase classname="test.Compression tests using CLI" name="should backup animaldb to a compressed file" time="1.376">
      <system-out><![CDATA[Backup process close 0 null
]]></system-out>
    </testcase>
    <testcase classname="test.Compression tests using CLI" name="should backup and restore animaldb via a compressed file" time="3.7">
      <system-out><![CDATA[Backup process close 0 null
]]></system-out>
    </testcase>
    <testcase classname="test.Compression tests using CLI" name="should backup and restore animaldb via a compressed stream" time="2.714">
      <system-out><![CDATA[Backup process close 0 null
]]></system-out>
    </testcase>
  </testsuite>
  <testsuite name="End to end backup and restore using API" tests="2" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:14:19" time="335.615">
    <testcase classname="test.End to end backup and restore using API" name="should backup and restore animaldb" time="2.168">
      <system-out><![CDATA[{ total: 15 }
{ total: 15 }
]]></system-out>
    </testcase>
    <testcase classname="test.End to end backup and restore using API" name="should backup and restore largedb1g #slow" time="332.678">
      <system-out><![CDATA[{ total: 522948 }
{ total: 522948 }
]]></system-out>
    </testcase>
  </testsuite>
  <testsuite name="End to end backup and restore using CLI" tests="2" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:19:55" time="518.261">
    <testcase classname="test.End to end backup and restore using CLI" name="should backup and restore animaldb" time="2.678">
      <system-out><![CDATA[Backup process close 0 null
]]></system-out>
    </testcase>
    <testcase classname="test.End to end backup and restore using CLI" name="should backup and restore largedb1g #slow" time="514.809">
      <system-out><![CDATA[Backup process close 0 null
]]></system-out>
    </testcase>
  </testsuite>
  <testsuite name="Encryption tests" tests="1" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:28:33" time="4.039">
    <testcase classname="test.Encryption tests" name="should backup and restore animaldb via an encrypted file" time="3.781">
      <system-out><![CDATA[Backup process close 0 null
]]></system-out>
    </testcase>
  </testsuite>
  <testsuite name="Write error tests" tests="1" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:28:37" time="0.266">
    <testcase classname="test.Write error tests" name="calls callback with error set when stream is not writeable" time="0.007">
    </testcase>
  </testsuite>
  <testsuite name="Event tests" tests="2" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:28:37" time="2.247">
    <testcase classname="test.Event tests" name="should get a finished event when using stdout" time="0.861">
    </testcase>
    <testcase classname="test.Event tests" name="should get a finished event when using file output" time="0.862">
    </testcase>
  </testsuite>
  <testsuite name="Resume tests using API" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:28:39" time="5.166">
    <testcase classname="test.Resume tests using API" name="should create a log file" time="0.866">
      <system-out><![CDATA[{ total: 15 }
]]></system-out>
    </testcase>
    <testcase classname="test.Resume tests using API" name="should restore corrupted animaldb to a database correctly" time="1.73">
      <system-out><![CDATA[{ total: 15 }
]]></system-out>
    </testcase>
    <testcase classname="test.Resume tests using API" name="should restore resumed animaldb with blank line to a database correctly" time="1.795">
      <system-out><![CDATA[{ total: 15 }
]]></system-out>
    </testcase>
  </testsuite>
  <testsuite name="Resume tests using CLI" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:28:45" time="6.69">
    <testcase classname="test.Resume tests using CLI" name="should create a log file" time="1.369">
      <system-out><![CDATA[Backup process close 0 null
]]></system-out>
    </testcase>
    <testcase classname="test.Resume tests using CLI" name="should restore corrupted animaldb to a database correctly" time="2.242">
    </testcase>
    <testcase classname="test.Resume tests using CLI" name="should restore resumed animaldb with blank line to a database correctly" time="2.305">
    </testcase>
  </testsuite>
  <testsuite name="Resume tests" tests="2" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:28:51" time="33.856">
    <testcase classname="test.Resume tests" name="should correctly backup and restore backup10m" time="16.568">
      <system-out><![CDATA[Backup process close null SIGTERM
Backup process close 0 null
]]></system-out>
    </testcase>
    <testcase classname="test.Resume tests" name="should correctly backup and restore backup10m using --output" time="16.771">
      <system-out><![CDATA[Backup process close null SIGTERM
Backup process close 0 null
]]></system-out>
    </testcase>
  </testsuite>
  <testsuite name="#unit Configuration" tests="12" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:25" time="0.007">
    <testcase classname="test.#unit Configuration" name="respects the COUCH_URL env variable" time="0">
    </testcase>
    <testcase classname="test.#unit Configuration" name="respects the COUCH_DATABASE env variable" time="0">
    </testcase>
    <testcase classname="test.#unit Configuration" name="respects the COUCH_BUFFER_SIZE env variable" time="0">
    </testcase>
    <testcase classname="test.#unit Configuration" name="respects the COUCH_PARALLELISM env variable" time="0">
    </testcase>
    <testcase classname="test.#unit Configuration" name="respects the COUCH_REQUEST_TIMEOUT env variable" time="0">
    </testcase>
    <testcase classname="test.#unit Configuration" name="respects the CLOUDANT_IAM_API_KEY env variable" time="0.001">
    </testcase>
    <testcase classname="test.#unit Configuration" name="respects the CLOUDANT_IAM_TOKEN_URL env variable" time="0">
    </testcase>
    <testcase classname="test.#unit Configuration" name="respects the COUCH_LOG env variable" time="0">
    </testcase>
    <testcase classname="test.#unit Configuration" name="respects the COUCH_RESUME env variable" time="0">
    </testcase>
    <testcase classname="test.#unit Configuration" name="respects the COUCH_OUTPUT env variable" time="0.001">
    </testcase>
    <testcase classname="test.#unit Configuration" name="respects the COUCH_MODE env variable" time="0">
    </testcase>
    <testcase classname="test.#unit Configuration" name="respects the COUCH_QUIET env variable" time="0.001">
    </testcase>
  </testsuite>
  <testsuite name="#unit Fatal errors using API for backup" tests="10" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:25" time="0.08">
    <testcase classname="test.#unit Fatal errors using API for backup" name="should terminate when DB does not exist" time="0.009">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for backup" name="should terminate on BulkGetError" time="0.008">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for backup" name="should terminate on Unauthorized existence check" time="0.005">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for backup" name="should terminate on Forbidden no _reader" time="0.004">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for backup" name="should terminate on _bulk_get HTTPFatalError" time="0.015">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for backup" name="should terminate on NoLogFileName" time="0.001">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for backup" name="should terminate on LogDoesNotExist" time="0.001">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for backup" name="should terminate on IncompleteChangesInLogFile" time="0.008">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for backup" name="should terminate on _changes HTTPFatalError" time="0.012">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for backup" name="should terminate on SpoolChangesError" time="0.013">
    </testcase>
  </testsuite>
  <testsuite name="#unit Fatal errors using API for restore" tests="9" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:25" time="0.141">
    <testcase classname="test.#unit Fatal errors using API for restore" name="should terminate on Unauthorized db existence check" time="0.006">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for restore" name="should terminate on Forbidden no _writer" time="0.013">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for restore" name="should terminate on RestoreDatabaseNotFound" time="0.005">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for restore" name="should terminate on notEmptyDBErr when database is not empty" time="0.005">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for restore" name="should terminate on notEmptyDBErr when database is not new" time="0.005">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for restore" name="should terminate on _bulk_docs HTTPFatalError" time="0.011">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for restore" name="should terminate on _bulk_docs HTTPFatalError from system database" time="0.029">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for restore" name="should terminate on _bulk_docs HTTPFatalError large stream" time="0.046">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for restore" name="should terminate on multiple _bulk_docs HTTPFatalError" time="0.012">
    </testcase>
  </testsuite>
  <testsuite name="#unit Fatal errors using CLI for backup" tests="10" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:25" time="3.834">
    <testcase classname="test.#unit Fatal errors using CLI for backup" name="should terminate when DB does not exist" time="0.355">
      <system-out><![CDATA[Backup process close 10 null
]]></system-out>
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for backup" name="should terminate on BulkGetError" time="0.391">
      <system-out><![CDATA[Backup process close 50 null
]]></system-out>
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for backup" name="should terminate on Unauthorized existence check" time="0.344">
      <system-out><![CDATA[Backup process close 11 null
]]></system-out>
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for backup" name="should terminate on Forbidden no _reader" time="0.334">
      <system-out><![CDATA[Backup process close 12 null
]]></system-out>
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for backup" name="should terminate on _bulk_get HTTPFatalError" time="0.552">
      <system-out><![CDATA[Backup process close 40 null
]]></system-out>
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for backup" name="should terminate on NoLogFileName" time="0.346">
      <system-out><![CDATA[Backup process close 20 null
]]></system-out>
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for backup" name="should terminate on LogDoesNotExist" time="0.328">
      <system-out><![CDATA[Backup process close 21 null
]]></system-out>
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for backup" name="should terminate on IncompleteChangesInLogFile" time="0.375">
      <system-out><![CDATA[Backup process close 22 null
]]></system-out>
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for backup" name="should terminate on _changes HTTPFatalError" time="0.418">
      <system-out><![CDATA[Backup process close 40 null
]]></system-out>
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for backup" name="should terminate on SpoolChangesError" time="0.381">
      <system-out><![CDATA[Backup process close 30 null
]]></system-out>
    </testcase>
  </testsuite>
  <testsuite name="#unit Fatal errors using CLI for restore" tests="9" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:29" time="3.721">
    <testcase classname="test.#unit Fatal errors using CLI for restore" name="should terminate on Unauthorized db existence check" time="0.32">
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for restore" name="should terminate on Forbidden no _writer" time="0.416">
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for restore" name="should terminate on RestoreDatabaseNotFound" time="0.391">
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for restore" name="should terminate on notEmptyDBErr when database is not empty" time="0.471">
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for restore" name="should terminate on notEmptyDBErr when database is not new" time="0.391">
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for restore" name="should terminate on _bulk_docs HTTPFatalError" time="0.394">
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for restore" name="should terminate on _bulk_docs HTTPFatalError from system database" time="0.468">
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for restore" name="should terminate on _bulk_docs HTTPFatalError large stream" time="0.434">
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for restore" name="should terminate on multiple _bulk_docs HTTPFatalError" time="0.426">
    </testcase>
  </testsuite>
  <testsuite name="#unit Fetching batches from a log file" tests="1" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:33" time="0.002">
    <testcase classname="test.#unit Fetching batches from a log file" name="should fetch multiple batches correctly" time="0.002">
    </testcase>
  </testsuite>
  <testsuite name="#unit Fetching summary from the log file" tests="1" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:33" time="0.002">
    <testcase classname="test.#unit Fetching summary from the log file" name="should fetch a summary correctly" time="0.001">
    </testcase>
  </testsuite>
  <testsuite name="#unit Default parameters Backup command-line" tests="23" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:33" time="0.042">
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the COUCH_URL env variable if the --url backup command-line parameter is missing" time="0.016">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the COUCH_DATABASE env variable if the --db backup command-line parameter is missing" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the COUCH_BUFFER_SIZE env variable if the --buffer-size backup command-line parameter is missing" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the COUCH_PARALLELISM env variable if the --parallelism backup command-line parameter is missing" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the COUCH_REQUEST_TIMEOUT env variable if the --request-timeout backup command-line parameter is missing" time="0">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the CLOUDANT_IAM_API_KEY env variable if the --iam-api-key backup command-line parameter is missing" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the COUCH_LOG env variable if the --log backup command-line parameter is missing" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the COUCH_RESUME env variable if the --resume backup command-line parameter is missing" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the COUCH_OUTPUT env variable if the --output backup command-line parameter is missing" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the COUCH_MODE env variable if the --mode backup command-line parameter is missing" time="0">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the COUCH_QUIET env variable if the --quiet backup command-line parameter is missing" time="0">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the backup --url command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the backup --db command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the backup --buffer-size command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the backup --parallelism command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the backup --request-timeout command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the backup --iam-api-key command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the backup --log command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the backup --resume command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the backup --output command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the backup --mode full command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the backup --mode shallow command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the backup --quiet command-line parameter" time="0.001">
    </testcase>
  </testsuite>
  <testsuite name="#unit Default parameters Restore command-line" tests="14" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:33" time="0.018">
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the COUCH_URL env variable if the --url restore command-line parameter is missing" time="0">
    </testcase>
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the COUCH_DATABASE env variable if the --db restore command-line parameter is missing" time="0">
    </testcase>
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the COUCH_BUFFER_SIZE env variable if the --buffer-size restore command-line parameter is missing" time="0">
    </testcase>
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the COUCH_PARALLELISM env variable if the --parallelism restore command-line parameter is missing" time="0">
    </testcase>
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the COUCH_REQUEST_TIMEOUT env variable if the --request-timeout restore command-line parameter is missing" time="0">
    </testcase>
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the CLOUDANT_IAM_API_KEY env variable if the --iam-api-key restore command-line parameter is missing" time="0">
    </testcase>
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the COUCH_QUIET env variable if the --quiet restorer command-line parameter is missing" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the restore --url command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the restore --db command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the restore --buffer-size command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the restore --parallelism command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the restore --request-timeout command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the restore --iam-api-key command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the restore --quiet command-line parameter" time="0.001">
    </testcase>
  </testsuite>
  <testsuite name="#unit Check request headers" tests="1" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:33" time="0.005">
    <testcase classname="test.#unit Check request headers" name="should have a couchbackup user-agent" time="0.005">
    </testcase>
  </testsuite>
  <testsuite name="#unit Check request response error callback" tests="8" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:33" time="10.597">
    <testcase classname="test.#unit Check request response error callback" name="should not callback with error for 200 response" time="0.004">
    </testcase>
    <testcase classname="test.#unit Check request response error callback" name="should callback with error after 3 500 responses" time="2.017">
    </testcase>
    <testcase classname="test.#unit Check request response error callback" name="should callback with error after 3 POST 503 responses" time="2.018">
    </testcase>
    <testcase classname="test.#unit Check request response error callback" name="should callback with error after 3 429 responses" time="2.016">
    </testcase>
    <testcase classname="test.#unit Check request response error callback" name="should callback with fatal error for 404 response" time="0.005">
    </testcase>
    <testcase classname="test.#unit Check request response error callback" name="should callback with same error for no status code error response" time="2.015">
    </testcase>
    <testcase classname="test.#unit Check request response error callback" name="should retry request if HTTP request gets timed out" time="0.509">
    </testcase>
    <testcase classname="test.#unit Check request response error callback" name="should callback with error code ESOCKETTIMEDOUT if 3 HTTP requests gets timed out" time="2.007">
    </testcase>
  </testsuite>
  <testsuite name="#unit Check request response error callback #unit Check credentials" tests="1" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:44" time="0.013">
    <testcase classname="test.#unit Check request response error callback #unit Check credentials" name="should properly decode username and password" time="0.011">
    </testcase>
  </testsuite>
  <testsuite name="#unit Perform backup using shallow backup" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:44" time="0.557">
    <testcase classname="test.#unit Perform backup using shallow backup" name="should perform a shallow backup" time="0.019">
    </testcase>
    <testcase classname="test.#unit Perform backup using shallow backup" name="should perform a shallow backup with transient error" time="0.524">
    </testcase>
    <testcase classname="test.#unit Perform backup using shallow backup" name="should fail to perform a shallow backup on fatal error" time="0.01">
    </testcase>
  </testsuite>
  <testsuite name="#unit Check spool changes" tests="4" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:44" time="15.051">
    <testcase classname="test.#unit Check spool changes" name="should terminate on request error" time="2.014">
    </testcase>
    <testcase classname="test.#unit Check spool changes" name="should terminate on bad HTTP status code response" time="2.01">
    </testcase>
    <testcase classname="test.#unit Check spool changes" name="should keep collecting changes" time="2.118">
    </testcase>
    <testcase classname="test.#unit Check spool changes" name="should keep collecting sparse changes" time="8.905">
    </testcase>
  </testsuite>
  <testsuite name="Longer spool changes checks" tests="1" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:59" time="50.513">
    <testcase classname="test.Longer spool changes checks" name="#slow should keep collecting changes (25M)" time="50.245">
    </testcase>
  </testsuite>
  <testsuite name="#unit Check database restore writer" tests="6" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:30:50" time="4.095">
    <testcase classname="test.#unit Check database restore writer" name="should complete successfully" time="0.024">
    </testcase>
    <testcase classname="test.#unit Check database restore writer" name="should terminate on a fatal error" time="0.006">
    </testcase>
    <testcase classname="test.#unit Check database restore writer" name="should retry on transient errors" time="2.016">
    </testcase>
    <testcase classname="test.#unit Check database restore writer" name="should fail after 3 transient errors" time="2.013">
    </testcase>
    <testcase classname="test.#unit Check database restore writer" name="should restore shallow backups without rev info successfully" time="0.022">
    </testcase>
    <testcase classname="test.#unit Check database restore writer" name="should get a batch error for non-empty array response with new_edits false" time="0.009">
    </testcase>
  </testsuite>
</testsuites>