Hey Noah,
It seems that you successfully compiled Stegotorus, congratulation! ;)
Although, you still have problem with compiling the unit tests in google framework, they are not essential in solving your challenge. I recommend that you start working on your challenge now.
Per Google's recommendation, I've included the google unit test code inside the code, so that g_unittests_LDFLAGS probably won't help (because you are linking to the object file directly). You might want to download the google frame work and try to compile it independently without the stegotorus headache:
https://googletest.googlecode.com/files/gtest-1.7.0.zip
Keep the good work going! vmon
Noah Rahman selimthegrim@gmail.com writes:
after fixing the local branch and having to remove -Werror by hand from the makefile yet again...maybe I am missing something else in the unit tests? I checked git branch -v and it now matches the tor-improve on remote/tor-improve
selimthegrim@Rimsky-Korsakoffee:~/stegotorus$ make -j2 make all-am make[1]: Entering directory `/home/selimthegrim/stegotorus' depbase=`echo src/steg/payload_scraper.o | sed 's| [^/]*$|.deps/&|;s|.o$||'`;\ g++ -I. -I./src -I./src/steg -I./src/steg/http_steg_mods - I./src/test/gtest -I./src/test/gtest/include -Wall -Wextra - Wno-missing-field-initializers -Wformat=2 -std=c++0x -g -O2 - std=gnu++11 -MT src/steg/payload_scraper.o -MD -MP -MF $depbase.Tpo -c -o src/steg/payload_scraper.o src/steg/payload_scraper.cc &&\ mv -f $depbase.Tpo $depbase.Po /bin/bash ./src/genmodtable.sh protolist.cc src/protocol/chop.cc src/protocol/chop_blk.cc src/protocol/null.cc protolist.cc is unchanged touch stamp-protolist /bin/bash ./src/genmodtable.sh steglist.cc src/steg/b64cookies.cc src/steg/cookies.cc src/steg/embed.cc src/steg/http.cc src/steg/http_apache.cc src/steg/http_steg_mods/file_steg.cc src/steg/http_steg_mods/pdfSteg.cc src/steg/http_steg_mods/swfSteg.cc src/steg/http_steg_mods/jsSteg.cc src/steg/http_steg_mods/jpgSteg.cc src/steg/http_steg_mods/pngSteg.cc src/steg/http_steg_mods/gifSteg.cc src/steg/nosteg.cc src/steg/nosteg_rr.cc src/steg/payload_server.cc src/steg/trace_payload_server.cc src/steg/payload_scraper.cc src/steg/apache_payload_server.cc steglist.cc is unchanged touch stamp-steglist depbase=`echo src/pgen_fake.o | sed 's|[^/]*$|.deps/&|;s|.o$||'`;\ g++ -I. -I./src -I./src/steg -I./src/steg/http_steg_mods - I./src/test/gtest -I./src/test/gtest/include -Wall -Wextra - Wno-missing-field-initializers -Wformat=2 -std=c++0x -g -O2 - std=gnu++11 -MT src/pgen_fake.o -MD -MP -MF $depbase.Tpo -c -o src/pgen_fake.o src/pgen_fake.cc &&\ mv -f $depbase.Tpo $depbase.Po /bin/bash ./src/test/genunitgrps.sh unitgrplist.cc src/test/unittest_base64.cc src/test/unittest_compression.cc src/test/unittest_crypt.cc src/test/unittest_pdfsteg.cc src/test/unittest_socks.cc touch stamp-unitgrplist depbase=`echo src/test/tltester.o | sed 's|[^/]*$|.deps/&|;s|.o$||' `;\ g++ -I. -I./src -I./src/steg -I./src/steg/http_steg_mods - I./src/test/gtest -I./src/test/gtest/include -Wall -Wextra - Wno-missing-field-initializers -Wformat=2 -std=c++0x -g -O2 - std=gnu++11 -MT src/test/tltester.o -MD -MP -MF $depbase.Tpo -c -o src/test/tltester.o src/test/tltester.cc &&\ mv -f $depbase.Tpo $depbase.Po depbase=`echo src/test/webpage_tester.o | sed 's| [^/]*$|.deps/&|;s|.o$||'`;\ g++ -I. -I./src -I./src/steg -I./src/steg/http_steg_mods - I./src/test/gtest -I./src/test/gtest/include -Wall -Wextra - Wno-missing-field-initializers -Wformat=2 -std=c++0x -g -O2 - std=gnu++11 -MT src/test/webpage_tester.o -MD -MP -MF $depbase.Tpo -c - o src/test/webpage_tester.o src/test/webpage_tester.cc &&\ mv -f $depbase.Tpo $depbase.Po src/steg/payload_scraper.cc: In member function ‘int PayloadScraper::scrape()’: src/steg/payload_scraper.cc:283:49: warning: ignoring return value of ‘int system(const char*)’, declared with attribute warn_unused_result [-Wunused-result] system(ftp_unmount_command_string.c_str()); ^ src/steg/payload_scraper.cc:312:49: warning: ignoring return value of ‘int system(const char*)’, declared with attribute warn_unused_result [-Wunused-result] system(ftp_unmount_command_string.c_str()); ^ depbase=`echo protolist.o | sed 's|[^/]*$|.deps/&|;s|.o$||'`;\ g++ -I. -I./src -I./src/steg -I./src/steg/http_steg_mods - I./src/test/gtest -I./src/test/gtest/include -Wall -Wextra - Wno-missing-field-initializers -Wformat=2 -std=c++0x -g -O2 - std=gnu++11 -MT protolist.o -MD -MP -MF $depbase.Tpo -c -o protolist.o protolist.cc &&\ mv -f $depbase.Tpo $depbase.Po depbase=`echo steglist.o | sed 's|[^/]*$|.deps/&|;s|.o$||'`;\ g++ -I. -I./src -I./src/steg -I./src/steg/http_steg_mods - I./src/test/gtest -I./src/test/gtest/include -Wall -Wextra - Wno-missing-field-initializers -Wformat=2 -std=c++0x -g -O2 - std=gnu++11 -MT steglist.o -MD -MP -MF $depbase.Tpo -c -o steglist.o steglist.cc &&\ mv -f $depbase.Tpo $depbase.Po g++ -Wall -Wextra -Wno-missing-field-initializers -Wformat=2 - std=c++0x -g -O2 -std=gnu++11 -o pgen_fake src/pgen_fake.o src/util.o src/rng.o src/base64.o -lcrypto depbase=`echo src/test/tinytest.o | sed 's|[^/]*$|.deps/&|;s|.o$||' `;\ g++ -I. -I./src -I./src/steg -I./src/steg/http_steg_mods - I./src/test/gtest -I./src/test/gtest/include -Wall -Wextra - Wno-missing-field-initializers -Wformat=2 -std=c++0x -g -O2 - std=gnu++11 -MT src/test/tinytest.o -MD -MP -MF $depbase.Tpo -c -o src/test/tinytest.o src/test/tinytest.cc &&\ mv -f $depbase.Tpo $depbase.Po depbase=`echo src/test/unittest.o | sed 's|[^/]*$|.deps/&|;s|.o$||' `;\ g++ -I. -I./src -I./src/steg -I./src/steg/http_steg_mods - I./src/test/gtest -I./src/test/gtest/include -Wall -Wextra - Wno-missing-field-initializers -Wformat=2 -std=c++0x -g -O2 - std=gnu++11 -MT src/test/unittest.o -MD -MP -MF $depbase.Tpo -c -o src/test/unittest.o src/test/unittest.cc &&\ mv -f $depbase.Tpo $depbase.Po depbase=`echo src/test/unittest_base64.o | sed 's| [^/]*$|.deps/&|;s|.o$||'`;\ g++ -I. -I./src -I./src/steg -I./src/steg/http_steg_mods - I./src/test/gtest -I./src/test/gtest/include -Wall -Wextra - Wno-missing-field-initializers -Wformat=2 -std=c++0x -g -O2 - std=gnu++11 -MT src/test/unittest_base64.o -MD -MP -MF $depbase.Tpo -c -o src/test/unittest_base64.o src/test/unittest_base64.cc &&\ mv -f $depbase.Tpo $depbase.Po depbase=`echo src/test/unittest_compression.o | sed 's| [^/]*$|.deps/&|;s|.o$||'`;\ g++ -I. -I./src -I./src/steg -I./src/steg/http_steg_mods - I./src/test/gtest -I./src/test/gtest/include -Wall -Wextra - Wno-missing-field-initializers -Wformat=2 -std=c++0x -g -O2 - std=gnu++11 -MT src/test/unittest_compression.o -MD -MP -MF $depbase.Tpo -c -o src/test/unittest_compression.o src/test/unittest_compression.cc &&\ mv -f $depbase.Tpo $depbase.Po depbase=`echo src/test/unittest_crypt.o | sed 's| [^/]*$|.deps/&|;s|.o$||'`;\ g++ -I. -I./src -I./src/steg -I./src/steg/http_steg_mods - I./src/test/gtest -I./src/test/gtest/include -Wall -Wextra - Wno-missing-field-initializers -Wformat=2 -std=c++0x -g -O2 - std=gnu++11 -MT src/test/unittest_crypt.o -MD -MP -MF $depbase.Tpo -c - o src/test/unittest_crypt.o src/test/unittest_crypt.cc &&\ mv -f $depbase.Tpo $depbase.Po depbase=`echo src/test/unittest_pdfsteg.o | sed 's| [^/]*$|.deps/&|;s|.o$||'`;\ g++ -I. -I./src -I./src/steg -I./src/steg/http_steg_mods - I./src/test/gtest -I./src/test/gtest/include -Wall -Wextra - Wno-missing-field-initializers -Wformat=2 -std=c++0x -g -O2 - std=gnu++11 -MT src/test/unittest_pdfsteg.o -MD -MP -MF $depbase.Tpo - c -o src/test/unittest_pdfsteg.o src/test/unittest_pdfsteg.cc &&\ mv -f $depbase.Tpo $depbase.Po depbase=`echo src/test/unittest_socks.o | sed 's| [^/]*$|.deps/&|;s|.o$||'`;\ g++ -I. -I./src -I./src/steg -I./src/steg/http_steg_mods - I./src/test/gtest -I./src/test/gtest/include -Wall -Wextra - Wno-missing-field-initializers -Wformat=2 -std=c++0x -g -O2 - std=gnu++11 -MT src/test/unittest_socks.o -MD -MP -MF $depbase.Tpo -c - o src/test/unittest_socks.o src/test/unittest_socks.cc &&\ mv -f $depbase.Tpo $depbase.Po depbase=`echo unitgrplist.o | sed 's|[^/]*$|.deps/&|;s|.o$||'`;\ g++ -I. -I./src -I./src/steg -I./src/steg/http_steg_mods - I./src/test/gtest -I./src/test/gtest/include -Wall -Wextra - Wno-missing-field-initializers -Wformat=2 -std=c++0x -g -O2 - std=gnu++11 -MT unitgrplist.o -MD -MP -MF $depbase.Tpo -c -o unitgrplist.o unitgrplist.cc &&\ mv -f $depbase.Tpo $depbase.Po depbase=`echo src/test/gtest/gtest_main.o | sed 's| [^/]*$|.deps/&|;s|.o$||'`;\ g++ -I. -I./src -I./src/steg -I./src/steg/http_steg_mods - I./src/test/gtest -I./src/test/gtest/include -Wall -Wextra - Wno-missing-field-initializers -Wformat=2 -std=c++0x -g -O2 - std=gnu++11 -MT src/test/gtest/gtest_main.o -MD -MP -MF $depbase.Tpo - c -o src/test/gtest/gtest_main.o src/test/gtest/gtest_main.cc &&\ mv -f $depbase.Tpo $depbase.Po depbase=`echo src/test/gtest/gtest-all.o | sed 's| [^/]*$|.deps/&|;s|.o$||'`;\ g++ -I. -I./src -I./src/steg -I./src/steg/http_steg_mods - I./src/test/gtest -I./src/test/gtest/include -Wall -Wextra - Wno-missing-field-initializers -Wformat=2 -std=c++0x -g -O2 - std=gnu++11 -MT src/test/gtest/gtest-all.o -MD -MP -MF $depbase.Tpo -c -o src/test/gtest/gtest-all.o src/test/gtest/gtest-all.cc &&\ mv -f $depbase.Tpo $depbase.Po depbase=`echo src/test/steg_test/steg_mod_unittest.o | sed 's| [^/]*$|.deps/&|;s|.o$||'`;\ g++ -I. -I./src -I./src/steg -I./src/steg/http_steg_mods - I./src/test/gtest -I./src/test/gtest/include -Wall -Wextra - Wno-missing-field-initializers -Wformat=2 -std=c++0x -g -O2 - std=gnu++11 -MT src/test/steg_test/steg_mod_unittest.o -MD -MP -MF $depbase.Tpo -c -o src/test/steg_test/steg_mod_unittest.o src/test/steg_test/steg_mod_unittest.cc &&\ mv -f $depbase.Tpo $depbase.Po depbase=`echo src/test/steg_test/payload_scraper_unittest.o | sed 's| [^/]*$|.deps/&|;s|.o$||'`;\ g++ -I. -I./src -I./src/steg -I./src/steg/http_steg_mods - I./src/test/gtest -I./src/test/gtest/include -Wall -Wextra - Wno-missing-field-initializers -Wformat=2 -std=c++0x -g -O2 - std=gnu++11 -MT src/test/steg_test/payload_scraper_unittest.o -MD -MP - MF $depbase.Tpo -c -o src/test/steg_test/payload_scraper_unittest.o src/test/steg_test/payload_scraper_unittest.cc &&\ mv -f $depbase.Tpo $depbase.Po g++ -Wall -Wextra -Wno-missing-field-initializers -Wformat=2 - std=c++0x -g -O2 -std=gnu++11 -o tltester src/test/tltester.o src/util.o src/util-net.o -levent depbase=`echo src/test/tester_proxy/tester_proxy.o | sed 's| [^/]*$|.deps/&|;s|.o$||'`;\ g++ -I. -I./src -I./src/steg -I./src/steg/http_steg_mods - I./src/test/gtest -I./src/test/gtest/include -Wall -Wextra - Wno-missing-field-initializers -Wformat=2 -std=c++0x -g -O2 - std=gnu++11 -MT src/test/tester_proxy/tester_proxy.o -MD -MP -MF $depbase.Tpo -c -o src/test/tester_proxy/tester_proxy.o src/test/tester_proxy/tester_proxy.cc &&\ mv -f $depbase.Tpo $depbase.Po depbase=`echo src/http_parser/http_parser.o | sed 's| [^/]*$|.deps/&|;s|.o$||'`;\ g++ -I. -I./src -I./src/steg -I./src/steg/http_steg_mods - I./src/test/gtest -I./src/test/gtest/include -Wall -Wextra - Wno-missing-field-initializers -Wformat=2 -std=c++0x -g -O2 - std=gnu++11 -MT src/http_parser/http_parser.o -MD -MP -MF $depbase.Tpo -c -o src/http_parser/http_parser.o src/http_parser/http_parser.cc &&\ mv -f $depbase.Tpo $depbase.Po rm -f libstegotorus.a ar cru libstegotorus.a src/base64.o src/compression.o src/connections.o src/crypt.o src/mkem.o src/network.o src/protocol.o src/rng.o src/socks.o src/steg.o src/util.o src/util-net.o src/evbuf_util.o src/curl_util.o src/transparent_proxy.o src/protocol/chop.o src/protocol/chop_blk.o src/protocol/null.o src/steg/b64cookies.o src/steg/cookies.o src/steg/embed.o src/steg/http.o src/steg/http_apache.o src/steg/http_apache.o src/steg/http_steg_mods/file_steg.o src/steg/http_steg_mods/pdfSteg.o src/steg/http_steg_mods/swfSteg.o src/steg/http_steg_mods/jsSteg.o src/steg/http_steg_mods/jpgSteg.o src/steg/http_steg_mods/pngSteg.o src/steg/http_steg_mods/gifSteg.o src/steg/nosteg.o src/steg/nosteg_rr.o src/steg/payload_server.o src/steg/trace_payload_server.o src/steg/payload_scraper.o src/steg/apache_payload_server.o src/subprocess-unix.o protolist.o steglist.o : libstegotorus.a /bin/bash ./src/audit-globals.sh src/base64.o src/compression.o src/connections.o src/crypt.o src/mkem.o src/network.o src/protocol.o src/rng.o src/socks.o src/steg.o src/util.o src/util-net.o src/evbuf_util.o src/curl_util.o src/transparent_proxy.o src/protocol/chop.o src/protocol/chop_blk.o src/protocol/null.o src/steg/b64cookies.o src/steg/cookies.o src/steg/embed.o src/steg/http.o src/steg/http_apache.o src/steg/http_apache.o src/steg/http_steg_mods/file_steg.o src/steg/http_steg_mods/pdfSteg.o src/steg/http_steg_mods/swfSteg.o src/steg/http_steg_mods/jsSteg.o src/steg/http_steg_mods/jpgSteg.o src/steg/http_steg_mods/pngSteg.o src/steg/http_steg_mods/gifSteg.o src/steg/nosteg.o src/steg/nosteg_rr.o src/steg/payload_server.o src/steg/trace_payload_server.o src/steg/payload_scraper.o src/steg/apache_payload_server.o src/subprocess-unix.o protolist.o steglist.o src/main.o sed: -e expression #1, char 113: unknown option to `s' touch stamp-audit-globals g++ -Wall -Wextra -Wno-missing-field-initializers -Wformat=2 - std=c++0x -g -O2 -std=gnu++11 -o unittests src/test/tinytest.o src/test/unittest.o src/test/unittest_base64.o src/test/unittest_compression.o src/test/unittest_crypt.o src/test/unittest_pdfsteg.o src/test/unittest_socks.o unitgrplist.o libstegotorus.a -levent -lcrypto -lz -lcurl -lboost_system - lboost_filesystem -lconfig++ g++ -Wall -Wextra -Wno-missing-field-initializers -Wformat=2 - std=c++0x -g -O2 -std=gnu++11 -o tester_proxy src/test/tester_proxy/tester_proxy.o -levent_openssl -levent -lssl - lcrypto g++ -Wall -Wextra -Wno-missing-field-initializers -Wformat=2 - std=c++0x -g -O2 -std=gnu++11 -o webpage_tester src/test/webpage_tester.o src/util.o src/util-net.o src/curl_util.o src/http_parser/http_parser.o -levent -lcrypto -lz -lcurl - lboost_system -lboost_filesystem -lconfig++ g++ -Wall -Wextra -Wno-missing-field-initializers -Wformat=2 - std=c++0x -g -O2 -std=gnu++11 -o stegotorus src/main.o libstegotorus.a -levent -lcrypto -lz -lcurl -lboost_system -lboost_filesystem - lconfig++ g++ -Wall -Wextra -Wno-missing-field-initializers -Wformat=2 - std=c++0x -g -O2 -std=gnu++11 -o g_unittests src/test/gtest/gtest_main.o src/test/gtest/gtest-all.o src/test/steg_test/steg_mod_unittest.o src/test/steg_test/payload_scraper_unittest.o libstegotorus.a -levent - lcrypto -lz -lcurl -lboost_system -lboost_filesystem -lconfig++ /usr/bin/ld: src/test/gtest/gtest-all.o: undefined reference to symbol 'pthread_key_delete@@GLIBC_2.2.5' /lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status make[1]: *** [g_unittests] Error 1 make[1]: Leaving directory `/home/selimthegrim/stegotorus' make: *** [all] Error 2