Skip to content
Snippets Groups Projects
  1. Mar 13, 2012
    • Nat Goodspeed's avatar
      Increase timeout for very-large-message test. · 1bdc876b
      Nat Goodspeed authored
      Apparently, at least on Mac, there are circumstances in which the very-large-
      message test can take several times longer than normal, yet still complete
      successfully. This is always the problem with timeouts: does timeout
      expiration mean that the code in question is actually hung, or would it
      complete if given a bit longer?
      If very-large-message test fails, retry a few times with smaller sizes to try
      to find a size at which the test runs reliably. The default size, ca 1MB, is
      intended to be substantially larger than anything we'll encounter in the wild.
      Is that "unreasonably" large? Is there a "reasonable" size at which the test
      could consistently pass? Is that "reasonable" size still larger than what we
      expect to encounter in practice? Need more information, hence this code.
      1bdc876b
  2. Mar 05, 2012
    • Nat Goodspeed's avatar
      Additional diagnostic code to track down strange Windows pipe error. · 2491e2bd
      Nat Goodspeed authored
      It seems that under certain circumstances, write logic was duplicating a chunk
      of the data being streamed down our pipe. But as this condition is only driven
      with a very large data stream, eyeballing that data stream is tedious. Add
      code to compare the raw received data with the expected stream, reporting
      where and how they first differ.
      2491e2bd
  3. Mar 04, 2012
    • Nat Goodspeed's avatar
      Simplify llleap_test.cpp plugin by reading individual characters. · 30e8e23d
      Nat Goodspeed authored
      While we're accumulating the 'length:' prefix, the present socket-based logic
      reads 20 characters, then reads 'length' more, then discards any excess (in
      case the whole 'length:data' packet ends up being less than 20 characters).
      That's probably a bug: whatever characters follow that packet, however short
      it may be, are probably the 'length:' prefix of the next packet. We probably
      only get away with it because we probably never send packets that short.
      Earlier llleap_test.cpp plugin logic still read 20 characters, then, if there
      were any left after the present packet, cached them as the start of the next
      packet. This is probably more correct, but complicated. Easier just to read
      individual characters until we've seen 'length:', then try for exactly the
      specified length over however many reads that requires.
      30e8e23d
    • Nat Goodspeed's avatar
      Make llleap_test.cpp avoid hard limit on MSVC std::ostringstream max. · ca703b2b
      Nat Goodspeed authored
      In load testing, we have observed intermittent failures on Windows in which
      LLSDNotationStreamer into std::ostringstream seems to bump into a hard limit
      of 1048590 bytes. ostringstream reports that much buffered data and returns
      that much -- even though, on examination, the notation-serialized stream is
      incomplete at that point. It's our intention to load-test LLLeap and
      LLProcess, not the local iostream implementation; we hope that this kind of
      data volume is comfortably greater than actual usage. Back off the
      load-testing max size a bit.
      ca703b2b
  4. Mar 03, 2012
    • Nat Goodspeed's avatar
      Add debugging output in case LLLeap writes corrupt data to plugin. · d72d9f73
      Nat Goodspeed authored
      New llleap_test.cpp load testing turned up Windows issue in which plugin
      process received corrupt packet, producing LLSDParseError. Add code to dump
      the bad packet in that case -- but if LLSDParseError is willing to state the
      offset of the problem, not ALL of the packet.
      Quiet MSVC warning about little internal base class needing virtual destructor.
      d72d9f73
  5. Mar 02, 2012
  6. Mar 01, 2012
    • Nat Goodspeed's avatar
      Refactor llleap_test.cpp to streamline adding more unit tests. · 9b5fcb78
      Nat Goodspeed authored
      Migrate logic from specific test to common reader module, notably parsing the
      wakeup message containing the reply-pump name.
      Make test script post to Result struct to communicate success/failure to C++
      TUT test, rather than just writing to log.
      Make test script insensitive to key order in serialized LLSD::Map.
      9b5fcb78
    • Nat Goodspeed's avatar
      Add LLLeap class, initial implementation, initial unit tests. · 0ef99cd3
      Nat Goodspeed authored
      Instantiating LLLeap with a command to execute a particular child process sets
      up machinery to speak LLSD Event API Plugin protocol with that child process.
      LLLeap is an LLInstanceTracker subclass, so the code that instantiates need
      not hold the pointer. LLLeap monitors child-process termination and deletes
      itself when done.
      0ef99cd3
Loading