summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-cpp/glog/files/glog-0.4.0-errnos.patch')
-rw-r--r--dev-cpp/glog/files/glog-0.4.0-errnos.patch99
1 files changed, 99 insertions, 0 deletions
diff --git a/dev-cpp/glog/files/glog-0.4.0-errnos.patch b/dev-cpp/glog/files/glog-0.4.0-errnos.patch
new file mode 100644
index 000000000000..c55716db1ba2
--- /dev/null
+++ b/dev-cpp/glog/files/glog-0.4.0-errnos.patch
@@ -0,0 +1,99 @@
+Index: b/src/googletest.h
+===================================================================
+--- a/src/googletest.h
++++ b/src/googletest.h
+@@ -437,6 +437,18 @@ static inline void StringReplace(string*
+ }
+ }
+
++static inline void IntReplace(string* str,
++ const string& oldsub,
++ int newsub) {
++ size_t pos = str->find(oldsub);
++ if (pos != string::npos) {
++ std::ostringstream ss;
++ ss << newsub;
++ const std::string x = ss.str();
++ str->replace(pos, oldsub.size(), x.c_str());
++ }
++}
++
+ static inline string Munge(const string& filename) {
+ FILE* fp = fopen(filename.c_str(), "rb");
+ CHECK(fp != NULL) << filename << ": couldn't open";
+@@ -452,9 +464,13 @@ static inline string Munge(const string&
+
+ StringReplace(&line, "__SUCCESS__", StrError(0));
+ StringReplace(&line, "__ENOENT__", StrError(ENOENT));
++ IntReplace(&line, "__ENOENT_NUM__", ENOENT);
+ StringReplace(&line, "__EINTR__", StrError(EINTR));
++ IntReplace(&line, "__EINTR_NUM__", EINTR);
+ StringReplace(&line, "__ENXIO__", StrError(ENXIO));
++ IntReplace(&line, "__ENXIO_NUM__", ENXIO);
+ StringReplace(&line, "__ENOEXEC__", StrError(ENOEXEC));
++ IntReplace(&line, "__ENOEXEC_NUM__", ENOEXEC);
+ result += line + "\n";
+ }
+ fclose(fp);
+Index: b/src/logging_unittest.cc
+===================================================================
+--- a/src/logging_unittest.cc
++++ b/src/logging_unittest.cc
+@@ -238,6 +238,17 @@ int main(int argc, char **argv) {
+ return 0;
+ }
+
++static int errnoForIteration(int i) {
++ switch (i) {
++ case 0: return 0;
++ case 2: return ENOENT;
++ case 4: return EINTR;
++ case 6: return ENXIO;
++ case 8: return ENOEXEC;
++ }
++ return -1;
++}
++
+ void TestLogging(bool check_counts) {
+ int64 base_num_infos = LogMessage::num_messages(GLOG_INFO);
+ int64 base_num_warning = LogMessage::num_messages(GLOG_WARNING);
+@@ -246,7 +257,7 @@ void TestLogging(bool check_counts) {
+ LOG(INFO) << string("foo ") << "bar " << 10 << ' ' << 3.4;
+ for ( int i = 0; i < 10; ++i ) {
+ int old_errno = errno;
+- errno = i;
++ errno = errnoForIteration(i);
+ PLOG_EVERY_N(ERROR, 2) << "Plog every 2, iteration " << COUNTER;
+ errno = old_errno;
+
+Index: b/src/logging_unittest.err
+===================================================================
+--- a/src/logging_unittest.err
++++ b/src/logging_unittest.err
+@@ -51,21 +51,21 @@ WDATE TIME__ THREADID logging_unittest.c
+ IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 1
+ EDATE TIME__ THREADID logging_unittest.cc:LINE] Log if less than 3 every 2, iteration 1
+ IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 2
+-EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 3: __ENOENT__ [2]
++EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 3: __ENOENT__ [__ENOENT_NUM__]
+ IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 3
+ EDATE TIME__ THREADID logging_unittest.cc:LINE] Log if less than 3 every 2, iteration 3
+ EDATE TIME__ THREADID logging_unittest.cc:LINE] Log every 3, iteration 4
+ IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 4
+-EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 5: __EINTR__ [4]
++EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 5: __EINTR__ [__EINTR_NUM__]
+ EDATE TIME__ THREADID logging_unittest.cc:LINE] Log every 4, iteration 5
+ IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 5
+ WDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 5, iteration 6
+ IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 6
+-EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 7: __ENXIO__ [6]
++EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 7: __ENXIO__ [__ENXIO_NUM__]
+ EDATE TIME__ THREADID logging_unittest.cc:LINE] Log every 3, iteration 7
+ IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 7
+ IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 8
+-EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 9: __ENOEXEC__ [8]
++EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 9: __ENOEXEC__ [__ENOEXEC_NUM__]
+ EDATE TIME__ THREADID logging_unittest.cc:LINE] Log every 4, iteration 9
+ IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 9
+ EDATE TIME__ THREADID logging_unittest.cc:LINE] Log every 3, iteration 10
+