Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Sep 2, 2012
  1. @matttproud

    Start refactoring Thrift version for decoupling.

    matttproud authored
    A new version of Thrift will be cut soon-hopefully including many of
    these fixes.  Thusly, we want to make it easy to test against another
    formal release of it.
  2. @matttproud

    Ensure the generated directory exists for tests.

    matttproud authored
    The generated directory does not exist for Travis.  :-(
  3. @matttproud

    Add Cassandra Thrift IDLs for further validation.

    matttproud authored
    Problems in the generated Go code for Cassandra from its IDL prompted
    me to start making repairs to thrift4go.  That said, I want to add
    some additional validations to validate that generation of the Go
    code for these is actually buildable.  From this, a couple of
    anomalies appeared in terms of how safe field names were
    emitted-e.g., ``Type`` to a Go-safe name.
  4. @matttproud
  5. @matttproud

    Add end-to-end interoperability test suite.

    matttproud authored
    We now have a canonical interopability test suite that exercises the
    behavior of the generated Go code against Java, which I perceive to
    be the better-maintained Thrift languages available.  This will
    enable us to verify wire protocol expectations between the two.
    Already this commit uncovers a problem in TSimpleJSON, but it is
    hard to tease apart whether this is necessarily new in thrift4go or
    not.  It is presently commented out and will be investigated very
    Right now Maven is used to build and host the Java sub-component.
    Travis has been updated to install requisite dependencies, as I
    expect them to be for this new stuff.
    The interoperability tests could be made more robust in checking
    a Java client to a Go server reliability, but this will come in the
    near future.
    As a side note, various ``Makefile`` entities across the repository
    have been updated such that the test suites around them recognize
    that they need to be re-run if the ``Makefile`` timestamp is newer
    than the dependent's rule.  More re-workings can be done.
  6. @matttproud

    Rename ``whitebox`` to ``golden`` for accuracy.

    matttproud authored
    The validation data should really have been named something other
    than whitebox, since it was not really a whitebox test.
Commits on Aug 28, 2012
  1. @matttproud

    Instruct the Go generator to run ``gofmt -w``.

    matttproud authored
    The Go code generator from the Thrift IDL will now run ``gofmt -w``
    on the emitted output; however, the Thrift generator will not
    necessarily care if the formatting process succeeds.  This will
    lower the barrier for entry for folks wanting to adopt Thrift on a
    Go-based platform due to following preferred standards.
  2. @matttproud

    Instruct Go generator not to build Makefiles.

    matttproud authored
    The need for the ``thrift`` compiler to build ``Makefile`` assistants
    for Go is deprecated due to the general lack of need for supplemental
    makefiles after the Go Version 1.0 release.  They are cruft now and
    could confuse people and are thusly removed.
Commits on Aug 27, 2012
  1. @matttproud

    Do not encode unset enum fields for the wire.

    matttproud authored
    I compared the way that the Go-language based Thrift emissions work
    for ``simple.thrift`` for each wire format against the same emissions
    produced by the Java version.  One of the things I found that
    thrift4go did wrong from the start was encode and send unset fields.
    This may need further verification.
  2. @matttproud
Commits on Aug 26, 2012
  1. @matttproud

    Split apart configuration and compilation phases.

    matttproud authored
    This makes re-testing faster and improves idempotency.
  2. @matttproud
  3. @matttproud

    Include Java namespace to aid in debugging.

    matttproud authored
    I am using Java to assist in the validation of the generated output's
  4. @matttproud
  5. @matttproud

    service_test.go was just a local prototype.

    matttproud authored
    It was commited in my local repository originally just to checkpoint
    my progress.  Thenceforth its features have been rolled into the
    existing tests in generation/ hierarchy.
  6. @matttproud
  7. @matttproud

    Test to validate enum struct field wire fidelity.

    matttproud authored
    Prior to making additional changes to the way that enum fields are
    encoded and decoded over the wire, I would like to add some tests
    that ensure that both the sending and receiving sides receive a
    consistent view of the underlying data.  This test validates all
    supported wire formats.
Commits on Aug 21, 2012
  1. @matttproud
Commits on Aug 19, 2012
  1. @matttproud

    Correct struct enum fields with default values.

    matttproud authored
    Ensure that a struct with enum fields that possess default values
    acknowledge that such values are set when their value happens to
    be set or equal the so-called default.
Commits on Aug 18, 2012
  1. @matttproud

    Validate is-set of enum field elements.

    matttproud authored
    If an enum is unset and requested in string form, it emits `<UNSET>`
    to provide a cue to the user.
    The base value for being unset is outside of Thrift's enum signed
    int32 value range.  The behavior around those enums that have default
    values may need further verification.  This allows an enum field for
    a struct that possesses unnumbered element values to be set to the
    first value such that thrift4go now acknowledges that the the field
    is actually set and will be included in the wire format.
  2. @matttproud

    Add test case validating optional field defaults.

    matttproud authored
    Per #16, we'll need to
    verify that the generated enum code really knows if a value or not
    is set for such fields.  In reality, these tests pass but they really
    hide the underlying error of the above issue.  They'll be changed to
    fail on incorrect behavior, and the underlying generated code will be
    fixed to make 'em pass in the next commit.
Commits on Aug 16, 2012
  1. @matttproud

    Expand generation test to include default fields.

    matttproud authored
    The generation test suite has been expanded to now include default
    enum fields in the struct.  This will allow me to target the
    presently-errant functionality with tests in a future commit.  To
    achieve this effect, the test suite now includes a skeletal Go test
    case that interacts with the generated Go code from a simple IDL.
  2. @matttproud

    Include compilation of generated Go in test.

    matttproud authored
    The so-called generation test suite now contains a struct that
    consists of the various types of enums.  That suite also now compiles
    ``ttypes.go`` to validate that that syntax is correct.  I'll look at
    adding some file that integrates with the generated ttypes to verify
    things further.
Commits on Aug 15, 2012
  1. @matttproud

    Include forgotten changes to ``tests/Makefile``.

    matttproud authored
    Somehow these changes that would trigger tests in
    ``tests/generation`` were forgotten from the earlier commit.
  2. @matttproud

    Add a test to verify the generated Go from IDL.

    matttproud authored
    We currently have no way of verifying that the generated Go code from
    the Thrift IDL is nessarily correct nor that it will even compile nor
    that the generated parts even behave correctly.  This new test case
    is an attempt to get some scaffolding around that problem domain.
  3. @matttproud

    Add an installation test and simplify makefile.

    matttproud authored
    It would be useful to test the ability of thrift4go to be installed
    via the ```` support file.  This now occurs.
  4. @matttproud
Commits on Aug 14, 2012
  1. @matttproud

    Expand the configure without specification.

    matttproud authored
    I'm unsure why make on Travis does not automatically expand that
    macro on that line, but I'll just remove it anyhow.  It works locally.
Commits on Aug 13, 2012
  1. @matttproud

    Add a Thrift stable integration test case.

    matttproud authored
    This new test case tests the merge process for thrift4go into the
    latest Thrift stable release (presently 0.8.0).  It does not perform
    any end-to-end runnings of the tools but rather just verifies that the
    generator C++ code as well as the autotools infrastructure are correct.
Something went wrong with that request. Please try again.