Rename DecodeCFAndKey to resolve naming conflict in unity test (#4323)

Summary:
Currently unity-test is failing because both trace_replay.cc and trace_analyzer_tool.cc defined `DecodeCFAndKey` under anonymous namespace. It is supposed to be fine except unity test will dump all source files together and now we have a conflict.
Another issue with trace_analyzer_tool.cc is that it is using some utility functions from ldb_cmd which is not included in Makefile for unity_test, I chose to update TESTHARNESS to include LIBOBJECTS. Feel free to comment if there is a less intrusive way to solve this.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/4323

Differential Revision: D9599170

Pulled By: miasantreble

fbshipit-source-id: 38765b11f8e7de92b43c63bdcf43ea914abdc029
main
Zhongyi Xie 6 years ago committed by Facebook Github Bot
parent 3e801e5ed1
commit 1cf17ba53b
  1. 4
      Makefile
  2. 6
      tools/trace_analyzer_tool.cc

@ -1002,8 +1002,10 @@ unity.a: unity.o
$(AM_V_AR)rm -f $@ $(AM_V_AR)rm -f $@
$(AM_V_at)$(AR) $(ARFLAGS) $@ unity.o $(AM_V_at)$(AR) $(ARFLAGS) $@ unity.o
TOOLLIBOBJECTS = $(TOOL_LIB_SOURCES:.cc=.o)
# try compiling db_test with unity # try compiling db_test with unity
unity_test: db/db_test.o db/db_test_util.o $(TESTHARNESS) unity.a unity_test: db/db_test.o db/db_test_util.o $(TESTHARNESS) $(TOOLLIBOBJECTS) unity.a
$(AM_LINK) $(AM_LINK)
./unity_test ./unity_test

@ -185,7 +185,7 @@ uint64_t MultiplyCheckOverflow(uint64_t op1, uint64_t op2) {
return (op1 * op2); return (op1 * op2);
} }
void DecodeCFAndKey(std::string& buffer, uint32_t* cf_id, Slice* key) { void DecodeCFAndKeyFromString(std::string& buffer, uint32_t* cf_id, Slice* key) {
Slice buf(buffer); Slice buf(buffer);
GetFixed32(&buf, cf_id); GetFixed32(&buf, cf_id);
GetLengthPrefixedSlice(&buf, key); GetLengthPrefixedSlice(&buf, key);
@ -459,7 +459,7 @@ Status TraceAnalyzer::StartProcessing() {
} else if (trace.type == kTraceGet) { } else if (trace.type == kTraceGet) {
uint32_t cf_id = 0; uint32_t cf_id = 0;
Slice key; Slice key;
DecodeCFAndKey(trace.payload, &cf_id, &key); DecodeCFAndKeyFromString(trace.payload, &cf_id, &key);
total_gets_++; total_gets_++;
s = HandleGet(cf_id, key.ToString(), trace.ts, 1); s = HandleGet(cf_id, key.ToString(), trace.ts, 1);
@ -471,7 +471,7 @@ Status TraceAnalyzer::StartProcessing() {
trace.type == kTraceIteratorSeekForPrev) { trace.type == kTraceIteratorSeekForPrev) {
uint32_t cf_id = 0; uint32_t cf_id = 0;
Slice key; Slice key;
DecodeCFAndKey(trace.payload, &cf_id, &key); DecodeCFAndKeyFromString(trace.payload, &cf_id, &key);
s = HandleIter(cf_id, key.ToString(), trace.ts, trace.type); s = HandleIter(cf_id, key.ToString(), trace.ts, trace.type);
if (!s.ok()) { if (!s.ok()) {
fprintf(stderr, "Cannot process the iterator in the trace\n"); fprintf(stderr, "Cannot process the iterator in the trace\n");

Loading…
Cancel
Save