| Index: third_party/protobuf/src/google/protobuf/compiler/ruby/ruby_generator_unittest.cc
|
| diff --git a/third_party/protobuf/src/google/protobuf/compiler/ruby/ruby_generator_unittest.cc b/third_party/protobuf/src/google/protobuf/compiler/ruby/ruby_generator_unittest.cc
|
| index 1aabe8aa98b5f59b50aff28a5e664add58cb7d6b..1b04cb320f2d9df86eb3d639e386f0b7902dd63e 100644
|
| --- a/third_party/protobuf/src/google/protobuf/compiler/ruby/ruby_generator_unittest.cc
|
| +++ b/third_party/protobuf/src/google/protobuf/compiler/ruby/ruby_generator_unittest.cc
|
| @@ -45,8 +45,22 @@ namespace compiler {
|
| namespace ruby {
|
| namespace {
|
|
|
| -string FindRubyTestDir() {
|
| - return TestSourceDir() + "/google/protobuf/compiler/ruby";
|
| +string FindRubyTestDir(const string& file) {
|
| + // Inspired by TestSourceDir() in src/google/protobuf/testing/googletest.cc.
|
| +#ifndef GOOGLE_THIRD_PARTY_PROTOBUF
|
| + string prefix = ".";
|
| + while (!File::Exists(prefix + "/src/google/protobuf/compiler/ruby" + file)) {
|
| + if (!File::Exists(prefix)) {
|
| + GOOGLE_LOG(FATAL)
|
| + << "Could not find Ruby test directory. Please run tests from "
|
| + "somewhere within the protobuf source package.";
|
| + }
|
| + prefix += "/..";
|
| + }
|
| + return prefix + "/src/google/protobuf/compiler/ruby";
|
| +#else
|
| + return "third_party/protobuf/src/google/protobuf/compiler/ruby";
|
| +#endif // GOOGLE_THIRD_PARTY_PROTOBUF
|
| }
|
|
|
| // This test is a simple golden-file test over the output of the Ruby code
|
| @@ -57,7 +71,7 @@ string FindRubyTestDir() {
|
| // extensions to the point where we can do this test in a more automated way.
|
|
|
| TEST(RubyGeneratorTest, GeneratorTest) {
|
| - string ruby_tests = FindRubyTestDir();
|
| + string ruby_tests = FindRubyTestDir("/ruby_generated_code.proto");
|
|
|
| google::protobuf::compiler::CommandLineInterface cli;
|
| cli.SetInputsAreProtoPathRelative(true);
|
| @@ -91,12 +105,12 @@ TEST(RubyGeneratorTest, GeneratorTest) {
|
| // Load the generated output and compare to the expected result.
|
| string output;
|
| GOOGLE_CHECK_OK(File::GetContents(
|
| - TestTempDir() + "/ruby_generated_code_pb.rb",
|
| + TestTempDir() + "/ruby_generated_code.rb",
|
| &output,
|
| true));
|
| string expected_output;
|
| GOOGLE_CHECK_OK(File::GetContents(
|
| - ruby_tests + "/ruby_generated_code_pb.rb",
|
| + ruby_tests + "/ruby_generated_code.rb",
|
| &expected_output,
|
| true));
|
| EXPECT_EQ(expected_output, output);
|
|
|