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 <[email protected]> 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 _______________________________________________ tor-dev mailing list [email protected] https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev
