X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fstl_logging_unittest.cc;h=89fd6a1e250ffca8d5f36a4386b54a5573c85522;hb=f2157a387b6036cd05153339f315883c50053c69;hp=0ed4695da499771fdb9421da0343b588cfefdf6c;hpb=7b97abb978fff069257257d2971d73c50b960863;p=platform%2Fupstream%2Fglog.git diff --git a/src/stl_logging_unittest.cc b/src/stl_logging_unittest.cc index 0ed4695..89fd6a1 100644 --- a/src/stl_logging_unittest.cc +++ b/src/stl_logging_unittest.cc @@ -27,29 +27,43 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -#include "utilities.h" #include "config.h" #ifdef HAVE_USING_OPERATOR -#include "glog/stl_logging.h" - +#include #include #include +#include #include -#include #include #ifdef __GNUC__ -# include -# include +// C++0x isn't enabled by default in GCC and libc++ does not have +// non-standard ext/* and tr1/unordered_*. +# if defined(_LIBCPP_VERSION) +# ifndef GLOG_STL_LOGGING_FOR_UNORDERED +# define GLOG_STL_LOGGING_FOR_UNORDERED +# endif +# else +# ifndef GLOG_STL_LOGGING_FOR_EXT_HASH +# define GLOG_STL_LOGGING_FOR_EXT_HASH +# endif +# ifndef GLOG_STL_LOGGING_FOR_EXT_SLIST +# define GLOG_STL_LOGGING_FOR_EXT_SLIST +# endif +# ifndef GLOG_STL_LOGGING_FOR_TR1_UNORDERED +# define GLOG_STL_LOGGING_FOR_TR1_UNORDERED +# endif +# endif #endif #include "glog/logging.h" +#include "glog/stl_logging.h" #include "googletest.h" using namespace std; -#ifdef __GNUC__ +#ifdef GLOG_STL_LOGGING_FOR_EXT_HASH using namespace __gnu_cxx; #endif @@ -64,11 +78,9 @@ void TestSTLLogging() { v.push_back(10); v.push_back(20); v.push_back(30); - char ss_buf[1000]; - ostrstream ss(ss_buf, sizeof(ss_buf)); - // Just ostrstream s1; leaks heap. - ss << v << ends; - CHECK_STREQ(ss.str(), "10 20 30"); + ostringstream ss; + ss << v; + EXPECT_EQ(ss.str(), "10 20 30"); vector copied_v(v); CHECK_EQ(v, copied_v); // This must compile. } @@ -79,41 +91,38 @@ void TestSTLLogging() { m[20] = "twenty"; m[10] = "ten"; m[30] = "thirty"; - char ss_buf[1000]; - ostrstream ss(ss_buf, sizeof(ss_buf)); - ss << m << ends; - CHECK_STREQ(ss.str(), "(10, ten) (20, twenty) (30, thirty)"); + ostringstream ss; + ss << m; + EXPECT_EQ(ss.str(), "(10, ten) (20, twenty) (30, thirty)"); map< int, string > copied_m(m); CHECK_EQ(m, copied_m); // This must compile. } -#ifdef __GNUC__ +#ifdef GLOG_STL_LOGGING_FOR_EXT_HASH { // Test a hashed simple associative container. hash_set hs; hs.insert(10); hs.insert(20); hs.insert(30); - char ss_buf[1000]; - ostrstream ss(ss_buf, sizeof(ss_buf)); - ss << hs << ends; - CHECK_STREQ(ss.str(), "10 20 30"); + ostringstream ss; + ss << hs; + EXPECT_EQ(ss.str(), "10 20 30"); hash_set copied_hs(hs); CHECK_EQ(hs, copied_hs); // This must compile. } #endif -#ifdef __GNUC__ +#ifdef GLOG_STL_LOGGING_FOR_EXT_HASH { // Test a hashed pair associative container. hash_map hm; hm[10] = "ten"; hm[20] = "twenty"; hm[30] = "thirty"; - char ss_buf[1000]; - ostrstream ss(ss_buf, sizeof(ss_buf)); - ss << hm << ends; - CHECK_STREQ(ss.str(), "(10, ten) (20, twenty) (30, thirty)"); + ostringstream ss; + ss << hm; + EXPECT_EQ(ss.str(), "(10, ten) (20, twenty) (30, thirty)"); hash_map copied_hm(hm); CHECK_EQ(hm, copied_hm); // this must compile } @@ -132,10 +141,9 @@ void TestSTLLogging() { } v.push_back(100); expected += " ..."; - char ss_buf[1000]; - ostrstream ss(ss_buf, sizeof(ss_buf)); - ss << v << ends; - CHECK_STREQ(ss.str(), expected.c_str()); + ostringstream ss; + ss << v; + CHECK_EQ(ss.str(), expected.c_str()); } { @@ -145,15 +153,14 @@ void TestSTLLogging() { m[20] = "twenty"; m[10] = "ten"; m[30] = "thirty"; - char ss_buf[1000]; - ostrstream ss(ss_buf, sizeof(ss_buf)); - ss << m << ends; - CHECK_STREQ(ss.str(), "(30, thirty) (20, twenty) (10, ten)"); + ostringstream ss; + ss << m; + EXPECT_EQ(ss.str(), "(30, thirty) (20, twenty) (10, ten)"); map< int, string, greater > copied_m(m); CHECK_EQ(m, copied_m); // This must compile. } -#ifdef __GNUC__ +#ifdef GLOG_STL_LOGGING_FOR_EXT_HASH { // Test a hashed simple associative container. // Use a user defined hash function. @@ -161,17 +168,16 @@ void TestSTLLogging() { hs.insert(10); hs.insert(20); hs.insert(30); - char ss_buf[1000]; - ostrstream ss(ss_buf, sizeof(ss_buf)); - ss << hs << ends; - CHECK_STREQ(ss.str(), "10 20 30"); + ostringstream ss; + ss << hs; + EXPECT_EQ(ss.str(), "10 20 30"); hash_set copied_hs(hs); CHECK_EQ(hs, copied_hs); // This must compile. } #endif } -int main(int argc, char** argv) { +int main(int, char**) { TestSTLLogging(); std::cout << "PASS\n"; return 0; @@ -181,7 +187,7 @@ int main(int argc, char** argv) { #include -int main(int argc, char** argv) { +int main(int, char**) { std::cout << "We don't support stl_logging for this compiler.\n" << "(we need compiler support of 'using ::operator<<' " << "for this feature.)\n";