diff options
Diffstat (limited to 'lib/gmock-1.7.0/gtest/samples')
18 files changed, 0 insertions, 2134 deletions
diff --git a/lib/gmock-1.7.0/gtest/samples/prime_tables.h b/lib/gmock-1.7.0/gtest/samples/prime_tables.h deleted file mode 100644 index 92ce16a014..0000000000 --- a/lib/gmock-1.7.0/gtest/samples/prime_tables.h +++ /dev/null @@ -1,123 +0,0 @@ -// Copyright 2008 Google Inc. -// All Rights Reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Author: wan@google.com (Zhanyong Wan) -// Author: vladl@google.com (Vlad Losev) - -// This provides interface PrimeTable that determines whether a number is a -// prime and determines a next prime number. This interface is used -// in Google Test samples demonstrating use of parameterized tests. - -#ifndef GTEST_SAMPLES_PRIME_TABLES_H_ -#define GTEST_SAMPLES_PRIME_TABLES_H_ - -#include <algorithm> - -// The prime table interface. -class PrimeTable { - public: - virtual ~PrimeTable() {} - - // Returns true iff n is a prime number. - virtual bool IsPrime(int n) const = 0; - - // Returns the smallest prime number greater than p; or returns -1 - // if the next prime is beyond the capacity of the table. - virtual int GetNextPrime(int p) const = 0; -}; - -// Implementation #1 calculates the primes on-the-fly. -class OnTheFlyPrimeTable : public PrimeTable { - public: - virtual bool IsPrime(int n) const { - if (n <= 1) return false; - - for (int i = 2; i*i <= n; i++) { - // n is divisible by an integer other than 1 and itself. - if ((n % i) == 0) return false; - } - - return true; - } - - virtual int GetNextPrime(int p) const { - for (int n = p + 1; n > 0; n++) { - if (IsPrime(n)) return n; - } - - return -1; - } -}; - -// Implementation #2 pre-calculates the primes and stores the result -// in an array. -class PreCalculatedPrimeTable : public PrimeTable { - public: - // 'max' specifies the maximum number the prime table holds. - explicit PreCalculatedPrimeTable(int max) - : is_prime_size_(max + 1), is_prime_(new bool[max + 1]) { - CalculatePrimesUpTo(max); - } - virtual ~PreCalculatedPrimeTable() { delete[] is_prime_; } - - virtual bool IsPrime(int n) const { - return 0 <= n && n < is_prime_size_ && is_prime_[n]; - } - - virtual int GetNextPrime(int p) const { - for (int n = p + 1; n < is_prime_size_; n++) { - if (is_prime_[n]) return n; - } - - return -1; - } - - private: - void CalculatePrimesUpTo(int max) { - ::std::fill(is_prime_, is_prime_ + is_prime_size_, true); - is_prime_[0] = is_prime_[1] = false; - - for (int i = 2; i <= max; i++) { - if (!is_prime_[i]) continue; - - // Marks all multiples of i (except i itself) as non-prime. - for (int j = 2*i; j <= max; j += i) { - is_prime_[j] = false; - } - } - } - - const int is_prime_size_; - bool* const is_prime_; - - // Disables compiler warning "assignment operator could not be generated." - void operator=(const PreCalculatedPrimeTable& rhs); -}; - -#endif // GTEST_SAMPLES_PRIME_TABLES_H_ diff --git a/lib/gmock-1.7.0/gtest/samples/sample1.cc b/lib/gmock-1.7.0/gtest/samples/sample1.cc deleted file mode 100644 index f171e2609d..0000000000 --- a/lib/gmock-1.7.0/gtest/samples/sample1.cc +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2005, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -// A sample program demonstrating using Google C++ testing framework. -// -// Author: wan@google.com (Zhanyong Wan) - -#include "sample1.h" - -// Returns n! (the factorial of n). For negative n, n! is defined to be 1. -int Factorial(int n) { - int result = 1; - for (int i = 1; i <= n; i++) { - result *= i; - } - - return result; -} - -// Returns true iff n is a prime number. -bool IsPrime(int n) { - // Trivial case 1: small numbers - if (n <= 1) return false; - - // Trivial case 2: even numbers - if (n % 2 == 0) return n == 2; - - // Now, we have that n is odd and n >= 3. - - // Try to divide n by every odd number i, starting from 3 - for (int i = 3; ; i += 2) { - // We only have to try i up to the squre root of n - if (i > n/i) break; - - // Now, we have i <= n/i < n. - // If n is divisible by i, n is not prime. - if (n % i == 0) return false; - } - - // n has no integer factor in the range (1, n), and thus is prime. - return true; -} diff --git a/lib/gmock-1.7.0/gtest/samples/sample1.h b/lib/gmock-1.7.0/gtest/samples/sample1.h deleted file mode 100644 index 3dfeb98c45..0000000000 --- a/lib/gmock-1.7.0/gtest/samples/sample1.h +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2005, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -// A sample program demonstrating using Google C++ testing framework. -// -// Author: wan@google.com (Zhanyong Wan) - -#ifndef GTEST_SAMPLES_SAMPLE1_H_ -#define GTEST_SAMPLES_SAMPLE1_H_ - -// Returns n! (the factorial of n). For negative n, n! is defined to be 1. -int Factorial(int n); - -// Returns true iff n is a prime number. -bool IsPrime(int n); - -#endif // GTEST_SAMPLES_SAMPLE1_H_ diff --git a/lib/gmock-1.7.0/gtest/samples/sample10_unittest.cc b/lib/gmock-1.7.0/gtest/samples/sample10_unittest.cc deleted file mode 100644 index 0051cd5dcd..0000000000 --- a/lib/gmock-1.7.0/gtest/samples/sample10_unittest.cc +++ /dev/null @@ -1,144 +0,0 @@ -// Copyright 2009 Google Inc. All Rights Reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Author: vladl@google.com (Vlad Losev) - -// This sample shows how to use Google Test listener API to implement -// a primitive leak checker. - -#include <stdio.h> -#include <stdlib.h> - -#include "gtest/gtest.h" - -using ::testing::EmptyTestEventListener; -using ::testing::InitGoogleTest; -using ::testing::Test; -using ::testing::TestCase; -using ::testing::TestEventListeners; -using ::testing::TestInfo; -using ::testing::TestPartResult; -using ::testing::UnitTest; - -namespace { - -// We will track memory used by this class. -class Water { - public: - // Normal Water declarations go here. - - // operator new and operator delete help us control water allocation. - void* operator new(size_t allocation_size) { - allocated_++; - return malloc(allocation_size); - } - - void operator delete(void* block, size_t /* allocation_size */) { - allocated_--; - free(block); - } - - static int allocated() { return allocated_; } - - private: - static int allocated_; -}; - -int Water::allocated_ = 0; - -// This event listener monitors how many Water objects are created and -// destroyed by each test, and reports a failure if a test leaks some Water -// objects. It does this by comparing the number of live Water objects at -// the beginning of a test and at the end of a test. -class LeakChecker : public EmptyTestEventListener { - private: - // Called before a test starts. - virtual void OnTestStart(const TestInfo& /* test_info */) { - initially_allocated_ = Water::allocated(); - } - - // Called after a test ends. - virtual void OnTestEnd(const TestInfo& /* test_info */) { - int difference = Water::allocated() - initially_allocated_; - - // You can generate a failure in any event handler except - // OnTestPartResult. Just use an appropriate Google Test assertion to do - // it. - EXPECT_LE(difference, 0) << "Leaked " << difference << " unit(s) of Water!"; - } - - int initially_allocated_; -}; - -TEST(ListenersTest, DoesNotLeak) { - Water* water = new Water; - delete water; -} - -// This should fail when the --check_for_leaks command line flag is -// specified. -TEST(ListenersTest, LeaksWater) { - Water* water = new Water; - EXPECT_TRUE(water != NULL); -} - -} // namespace - -int main(int argc, char **argv) { - InitGoogleTest(&argc, argv); - - bool check_for_leaks = false; - if (argc > 1 && strcmp(argv[1], "--check_for_leaks") == 0 ) - check_for_leaks = true; - else - printf("%s\n", "Run this program with --check_for_leaks to enable " - "custom leak checking in the tests."); - - // If we are given the --check_for_leaks command line flag, installs the - // leak checker. - if (check_for_leaks) { - TestEventListeners& listeners = UnitTest::GetInstance()->listeners(); - - // Adds the leak checker to the end of the test event listener list, - // after the default text output printer and the default XML report - // generator. - // - // The order is important - it ensures that failures generated in the - // leak checker's OnTestEnd() method are processed by the text and XML - // printers *before* their OnTestEnd() methods are called, such that - // they are attributed to the right test. Remember that a listener - // receives an OnXyzStart event *after* listeners preceding it in the - // list received that event, and receives an OnXyzEnd event *before* - // listeners preceding it. - // - // We don't need to worry about deleting the new listener later, as - // Google Test will do it. - listeners.Append(new LeakChecker); - } - return RUN_ALL_TESTS(); -} diff --git a/lib/gmock-1.7.0/gtest/samples/sample1_unittest.cc b/lib/gmock-1.7.0/gtest/samples/sample1_unittest.cc deleted file mode 100644 index aefc4f1d86..0000000000 --- a/lib/gmock-1.7.0/gtest/samples/sample1_unittest.cc +++ /dev/null @@ -1,153 +0,0 @@ -// Copyright 2005, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -// A sample program demonstrating using Google C++ testing framework. -// -// Author: wan@google.com (Zhanyong Wan) - - -// This sample shows how to write a simple unit test for a function, -// using Google C++ testing framework. -// -// Writing a unit test using Google C++ testing framework is easy as 1-2-3: - - -// Step 1. Include necessary header files such that the stuff your -// test logic needs is declared. -// -// Don't forget gtest.h, which declares the testing framework. - -#include <limits.h> -#include "sample1.h" -#include "gtest/gtest.h" - - -// Step 2. Use the TEST macro to define your tests. -// -// TEST has two parameters: the test case name and the test name. -// After using the macro, you should define your test logic between a -// pair of braces. You can use a bunch of macros to indicate the -// success or failure of a test. EXPECT_TRUE and EXPECT_EQ are -// examples of such macros. For a complete list, see gtest.h. -// -// <TechnicalDetails> -// -// In Google Test, tests are grouped into test cases. This is how we -// keep test code organized. You should put logically related tests -// into the same test case. -// -// The test case name and the test name should both be valid C++ -// identifiers. And you should not use underscore (_) in the names. -// -// Google Test guarantees that each test you define is run exactly -// once, but it makes no guarantee on the order the tests are -// executed. Therefore, you should write your tests in such a way -// that their results don't depend on their order. -// -// </TechnicalDetails> - - -// Tests Factorial(). - -// Tests factorial of negative numbers. -TEST(FactorialTest, Negative) { - // This test is named "Negative", and belongs to the "FactorialTest" - // test case. - EXPECT_EQ(1, Factorial(-5)); - EXPECT_EQ(1, Factorial(-1)); - EXPECT_GT(Factorial(-10), 0); - - // <TechnicalDetails> - // - // EXPECT_EQ(expected, actual) is the same as - // - // EXPECT_TRUE((expected) == (actual)) - // - // except that it will print both the expected value and the actual - // value when the assertion fails. This is very helpful for - // debugging. Therefore in this case EXPECT_EQ is preferred. - // - // On the other hand, EXPECT_TRUE accepts any Boolean expression, - // and is thus more general. - // - // </TechnicalDetails> -} - -// Tests factorial of 0. -TEST(FactorialTest, Zero) { - EXPECT_EQ(1, Factorial(0)); -} - -// Tests factorial of positive numbers. -TEST(FactorialTest, Positive) { - EXPECT_EQ(1, Factorial(1)); - EXPECT_EQ(2, Factorial(2)); - EXPECT_EQ(6, Factorial(3)); - EXPECT_EQ(40320, Factorial(8)); -} - - -// Tests IsPrime() - -// Tests negative input. -TEST(IsPrimeTest, Negative) { - // This test belongs to the IsPrimeTest test case. - - EXPECT_FALSE(IsPrime(-1)); - EXPECT_FALSE(IsPrime(-2)); - EXPECT_FALSE(IsPrime(INT_MIN)); -} - -// Tests some trivial cases. -TEST(IsPrimeTest, Trivial) { - EXPECT_FALSE(IsPrime(0)); - EXPECT_FALSE(IsPrime(1)); - EXPECT_TRUE(IsPrime(2)); - EXPECT_TRUE(IsPrime(3)); -} - -// Tests positive input. -TEST(IsPrimeTest, Positive) { - EXPECT_FALSE(IsPrime(4)); - EXPECT_TRUE(IsPrime(5)); - EXPECT_FALSE(IsPrime(6)); - EXPECT_TRUE(IsPrime(23)); -} - -// Step 3. Call RUN_ALL_TESTS() in main(). -// -// We do this by linking in src/gtest_main.cc file, which consists of -// a main() function which calls RUN_ALL_TESTS() for us. -// -// This runs all the tests you've defined, prints the result, and -// returns 0 if successful, or 1 otherwise. -// -// Did you notice that we didn't register the tests? The -// RUN_ALL_TESTS() macro magically knows about all the tests we -// defined. Isn't this convenient? diff --git a/lib/gmock-1.7.0/gtest/samples/sample2.cc b/lib/gmock-1.7.0/gtest/samples/sample2.cc deleted file mode 100644 index 5f763b9bdf..0000000000 --- a/lib/gmock-1.7.0/gtest/samples/sample2.cc +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright 2005, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -// A sample program demonstrating using Google C++ testing framework. -// -// Author: wan@google.com (Zhanyong Wan) - -#include "sample2.h" - -#include <string.h> - -// Clones a 0-terminated C string, allocating memory using new. -const char* MyString::CloneCString(const char* a_c_string) { - if (a_c_string == NULL) return NULL; - - const size_t len = strlen(a_c_string); - char* const clone = new char[ len + 1 ]; - memcpy(clone, a_c_string, len + 1); - - return clone; -} - -// Sets the 0-terminated C string this MyString object -// represents. -void MyString::Set(const char* a_c_string) { - // Makes sure this works when c_string == c_string_ - const char* const temp = MyString::CloneCString(a_c_string); - delete[] c_string_; - c_string_ = temp; -} diff --git a/lib/gmock-1.7.0/gtest/samples/sample2.h b/lib/gmock-1.7.0/gtest/samples/sample2.h deleted file mode 100644 index cb485c70fb..0000000000 --- a/lib/gmock-1.7.0/gtest/samples/sample2.h +++ /dev/null @@ -1,85 +0,0 @@ -// Copyright 2005, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -// A sample program demonstrating using Google C++ testing framework. -// -// Author: wan@google.com (Zhanyong Wan) - -#ifndef GTEST_SAMPLES_SAMPLE2_H_ -#define GTEST_SAMPLES_SAMPLE2_H_ - -#include <string.h> - - -// A simple string class. -class MyString { - private: - const char* c_string_; - const MyString& operator=(const MyString& rhs); - - public: - // Clones a 0-terminated C string, allocating memory using new. - static const char* CloneCString(const char* a_c_string); - - //////////////////////////////////////////////////////////// - // - // C'tors - - // The default c'tor constructs a NULL string. - MyString() : c_string_(NULL) {} - - // Constructs a MyString by cloning a 0-terminated C string. - explicit MyString(const char* a_c_string) : c_string_(NULL) { - Set(a_c_string); - } - - // Copy c'tor - MyString(const MyString& string) : c_string_(NULL) { - Set(string.c_string_); - } - - //////////////////////////////////////////////////////////// - // - // D'tor. MyString is intended to be a final class, so the d'tor - // doesn't need to be virtual. - ~MyString() { delete[] c_string_; } - - // Gets the 0-terminated C string this MyString object represents. - const char* c_string() const { return c_string_; } - - size_t Length() const { - return c_string_ == NULL ? 0 : strlen(c_string_); - } - - // Sets the 0-terminated C string this MyString object represents. - void Set(const char* c_string); -}; - - -#endif // GTEST_SAMPLES_SAMPLE2_H_ diff --git a/lib/gmock-1.7.0/gtest/samples/sample2_unittest.cc b/lib/gmock-1.7.0/gtest/samples/sample2_unittest.cc deleted file mode 100644 index 4fa19b71c7..0000000000 --- a/lib/gmock-1.7.0/gtest/samples/sample2_unittest.cc +++ /dev/null @@ -1,109 +0,0 @@ -// Copyright 2005, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -// A sample program demonstrating using Google C++ testing framework. -// -// Author: wan@google.com (Zhanyong Wan) - - -// This sample shows how to write a more complex unit test for a class -// that has multiple member functions. -// -// Usually, it's a good idea to have one test for each method in your -// class. You don't have to do that exactly, but it helps to keep -// your tests organized. You may also throw in additional tests as -// needed. - -#include "sample2.h" -#include "gtest/gtest.h" - -// In this example, we test the MyString class (a simple string). - -// Tests the default c'tor. -TEST(MyString, DefaultConstructor) { - const MyString s; - - // Asserts that s.c_string() returns NULL. - // - // <TechnicalDetails> - // - // If we write NULL instead of - // - // static_cast<const char *>(NULL) - // - // in this assertion, it will generate a warning on gcc 3.4. The - // reason is that EXPECT_EQ needs to know the types of its - // arguments in order to print them when it fails. Since NULL is - // #defined as 0, the compiler will use the formatter function for - // int to print it. However, gcc thinks that NULL should be used as - // a pointer, not an int, and therefore complains. - // - // The root of the problem is C++'s lack of distinction between the - // integer number 0 and the null pointer constant. Unfortunately, - // we have to live with this fact. - // - // </TechnicalDetails> - EXPECT_STREQ(NULL, s.c_string()); - - EXPECT_EQ(0u, s.Length()); -} - -const char kHelloString[] = "Hello, world!"; - -// Tests the c'tor that accepts a C string. -TEST(MyString, ConstructorFromCString) { - const MyString s(kHelloString); - EXPECT_EQ(0, strcmp(s.c_string(), kHelloString)); - EXPECT_EQ(sizeof(kHelloString)/sizeof(kHelloString[0]) - 1, - s.Length()); -} - -// Tests the copy c'tor. -TEST(MyString, CopyConstructor) { - const MyString s1(kHelloString); - const MyString s2 = s1; - EXPECT_EQ(0, strcmp(s2.c_string(), kHelloString)); -} - -// Tests the Set method. -TEST(MyString, Set) { - MyString s; - - s.Set(kHelloString); - EXPECT_EQ(0, strcmp(s.c_string(), kHelloString)); - - // Set should work when the input pointer is the same as the one - // already in the MyString object. - s.Set(s.c_string()); - EXPECT_EQ(0, strcmp(s.c_string(), kHelloString)); - - // Can we set the MyString to NULL? - s.Set(NULL); - EXPECT_STREQ(NULL, s.c_string()); -} diff --git a/lib/gmock-1.7.0/gtest/samples/sample3-inl.h b/lib/gmock-1.7.0/gtest/samples/sample3-inl.h deleted file mode 100644 index 7e3084d638..0000000000 --- a/lib/gmock-1.7.0/gtest/samples/sample3-inl.h +++ /dev/null @@ -1,172 +0,0 @@ -// Copyright 2005, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce |