Skip to content
Snippets Groups Projects
  1. Dec 19, 2012
    • Nat Goodspeed's avatar
      MAINT-1986: in TeamCity, do not reload saved hashmap_test data. · 8a2c30b3
      Nat Goodspeed authored
      Rev b7fd7c95c571 allows a developer to debug a failure in hashmap_test 1. Once
      the test fails, rerunning that test will replay the same failure to try to
      permit debugging it. But that behavior is extremely undesirable under
      TeamCity! In a TeamCity run, don't even check for saved data file.
      8a2c30b3
  2. Oct 10, 2012
    • Nat Goodspeed's avatar
      On lluuidhashmap_tut<1> failure, save/reload data in temp file. · e97c06cf
      Nat Goodspeed authored
      Generating new random data on every test run makes it impossible to debug a
      test failure. While in general we do want to generate random data to
      thoroughly exercise the generator logic, if every new run generates new data,
      the only thing we can do about an observed failure is shrug and ignore it. Add
      logic to save data on failure, with corresponding logic to notice and reload
      from a previously-generated save file.
      In case of a merge collision, this version SUPERCEDES my previous efforts with
      this file. (My other changes may still be in a backed-up merge request.) It is
      okay to resolve collisions in favor of this version.
      e97c06cf
  3. Oct 03, 2012
  4. Sep 21, 2012
  5. Jul 20, 2012
  6. Jun 27, 2012
  7. Jun 26, 2012
  8. Jun 24, 2012
  9. Jun 06, 2012
  10. May 09, 2012
  11. Apr 23, 2012
    • Nat Goodspeed's avatar
      IQA-463: LLError::addRecorder() claims ownership of passed Recorder*. · eb1bea22
      Nat Goodspeed authored
      That is, when the underlying LLError::Settings object is destroyed -- possibly
      at termination, possibly on LLError::restoreSettings() -- the passed Recorder*
      is deleted.
      There was much existing code that seemed as unaware of this alarming fact as I
      was myself. Passing to addRecorder() a pointer to a stack object, or to a
      member of some other object, is just Bad. It might be preferable to make
      addRecorder() accept std::auto_ptr<Recorder> to make the ownership transfer
      more explicit -- or even boost::shared_ptr<Recorder> instead, which would
      allow the caller to either forget or retain the passed Recorder.
      This preliminary pass retains the Recorder* dumb pointer API, but documents
      the ownership issue, and eliminates known instances of passing pointers to
      anything but a standalone heap Recorder subclass object.
      eb1bea22
  12. Mar 05, 2012
    • Nat Goodspeed's avatar
      Make test.cpp support LOGFAIL env var: only failed tests show log. · f02ded46
      Nat Goodspeed authored
      Set LOGFAIL= one of ALL, DEBUG, INFO, WARN, ERROR, NONE. A passing test will
      run silently, as now; but a failing test will replay log output at the
      specified level or higher.
      While at it, support LOGTEST environment variable, same values. This is like
      setting --debug (or -d), but allows specifying an arbitrary level -- and,
      unlike --debug, can be set for a TeamCity build config without modifying any
      scripts or code.
      Publish LLError::decodeLevel(std::string), previously private to llerror.cpp.
      f02ded46
  13. Mar 01, 2012
  14. Feb 24, 2012
  15. Feb 15, 2012
    • Nat Goodspeed's avatar
      Fix llprocess_test.cpp's exception catching for Linux. · 10ab4adc
      Nat Goodspeed authored
      In the course of re-enabling the indra/test tests last year, Log generalized a
      workaround I'd introduced in llsdmessage_test.cpp. In Linux viewer land, a
      test program trying to catch an expected exception can't seem to catch it by
      its specific class (across the libllcommon.so boundary), but must instead
      catch std::runtime_error and validate the typeid().name() string. Log added a
      macro for this idiom in llevents_tut.cpp. Generalize that macro further for
      normal-case processing as well, move it to a header file of its own and use it
      in all known places -- plus the new exception-catching tests in
      llprocess_test.cpp.
      10ab4adc
  16. Feb 08, 2012
  17. Feb 07, 2012
  18. Feb 06, 2012
  19. Feb 03, 2012
  20. Jan 17, 2012
  21. Jan 13, 2012
    • Nat Goodspeed's avatar
      Extract APR and temp-fixture-file helper code to indra/test. · b6a08ad0
      Nat Goodspeed authored
      Specifically:
      Introduce ManageAPR class in indra/test/manageapr.h. This is useful for a
      simple test program without lots of static constructors.
      Extract NamedTempFile from llsdserialize_test.cpp to indra/test/
      namedtempfile.h. Refactor to use APR file operations rather than platform-
      dependent APIs.
      Use NamedTempFile for llprocesslauncher_test.cpp.
      b6a08ad0
  22. Dec 01, 2011
    • Nat Goodspeed's avatar
      LLSD-14: Move LLSD::(outstanding|allocation)Count() to free functions. · 95fb0249
      Nat Goodspeed authored
      Free functions can be unconditionally compiled into the .o file, but
      conditionally hidden in the header file. Static class methods don't have that
      flexibility: without a declaration in the header file, you can't compile a
      function definition in the .cpp file. That makes it awkward to use the same
      llcommon build for production and for unit tests.
      Why make the function declarations conditional at all? These are debugging
      functions. They break the abstraction, they peek under the covers. Production
      code should not use them. Making them conditional on an #ifdef symbol in the
      unit-test source file means the compiler would reject any use by production
      code. Put differently, it allows us to assert with confidence that only unit
      tests do use them.
      Put new free functions in (lowercase) llsd namespace so as not to clutter
      global namespace.
      Tweak the one known consumer (llsd_new_tut.cpp) accordingly.
      95fb0249
  23. Nov 18, 2011
  24. Nov 17, 2011
  25. Oct 20, 2011
  26. Oct 14, 2011
  27. Oct 12, 2011
  28. Oct 05, 2011
  29. Sep 16, 2011
  30. Sep 15, 2011
  31. Sep 14, 2011
  32. Sep 13, 2011
  33. Sep 09, 2011
Loading