Ensured there are bugs for all open valgrind issues in the standard tests and suppressed the known issues. This way, we can get it running in continuous integration and keep new issues from entering.
Removed bad check in codec test, added suppressions.
Fixed simple memory leaks in tests.
BUG=Related to bug 329
TEST=Ran the vie_auto_test standard suite many times under valgrind to root out flakiness. Ran the standard suite without valgrind to ensure I didn't break anything.
Review URL: https://webrtc-codereview.appspot.com/843005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2854 4adac7df-926f-26a2-2b94-8c16560cd09d
Added new wrapper script webrtc_tests.bat for executing memory/threading tests on Windows.
Updated webrtc_tests.sh to include modifications in chrome_tests.sh that has happened since we copied it.
To setup TSAN for Windows, see http://www.chromium.org/developers/how-tos/using-valgrind/threadsanitizer
I did like this:
1. Added "third_party/tsan": "http://src.chromium.org/chrome/trunk/deps/third_party/tsan"
to custom_deps in my .gclient file
2. gclient sync
3. SET GYP_DEFINES=build_with_tool=tsan && gclient runhooks
4. Compiled.
5. Ran the test using the wrapper script (see below).
To setup Dr Memory for Windows, see http://www.chromium.org/developers/how-tos/using-drmemory
I did like this:
1. Added "third_party/drmemory": "http://src.chromium.org/svn/trunk/deps/third_party/drmemory",
to custom_deps in my .gclient file (using the drmemory.DEPS as described on Chromium's wiki ends up in the wrong location)
2. gclient sync
3. SET GYP_DEFINES=build_with_tool=drmemory && gclient runhooks
4. Compiled.
5. Ran the test using the wrapper script (see below).
TEST=
On Windows:
tools\valgrind-webrtc\webrtc_tests.bat --tool=tsan --test build\Debug\voice_engine_unittests.exe
tools\valgrind-webrtc\webrtc_tests.bat --tool=drmemory_light --test build\Debug\voice_engine_unittests.exe
tools\valgrind-webrtc\webrtc_tests.bat --tool=drmemory_full --test build\Debug\voice_engine_unittests.exe
On Linux:
tools/valgrind-webrtc/webrtc_tests.sh --tool=memcheck --test out/Release/test_support_unittests
tools/valgrind-webrtc/webrtc_tests.sh --tool=tsan --test out/Release/test_support_unittests
tools/valgrind-webrtc/webrtc_tests.sh --tool=asan --test out/Release/test_support_unittests
Review URL: https://webrtc-codereview.appspot.com/845004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2846 4adac7df-926f-26a2-2b94-8c16560cd09d
This is also needed to make it possible to run unit tests easily using Chromium's buildbot source code.
BUG=None
TEST=tools/valgrind-webrtc/webrtc_tests.sh --test test_support_unittests --build_dir=out/Debug
Review URL: https://webrtc-codereview.appspot.com/784007
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2738 4adac7df-926f-26a2-2b94-8c16560cd09d
Since Chromium has moved to this policy, we should too.
Code is copied from /depot_tools/presubmit_canned_checks.py but modified for our purpose.
BUG=
TEST=Tested git cl presubmit with a modified .cc file with the 2011 header and one with the 2012.
Review URL: https://webrtc-codereview.appspot.com/770005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2691 4adac7df-926f-26a2-2b94-8c16560cd09d
The barcode encoder generates barcodes as PNG files, than converts them to YUV files,
then stitches these into one YUV video file and finaly overlays this video over the
base video to produce a YUV video of the base with encoded barcodes in the upper part
of the video.
The decoder gets a YUV video with overlaid barcodes and first splits it into PNG files,
than decodes every file, and finally generates a stats file.
The encoder and decoder use Zxing and its Java command-line tools for the encoding and
decoding. They also use ffmpeg for the conversion between PNG and YUV and vice versa.
BUG=
TEST=
The tools could be used from trunk as:
./tools/barcode_tools/barcode_encoder.py --barcode_height=32 --base_frame_width=352
--base_frame_height=288 --base_yuv=<path_nad_name_to_base_file>
--output_yuv=<path_nad_name_to_output_file>
./tools/barcode_tools/barcode_decoder.py --yuv_file=<path_and_name_to_yuv_file>
--yuv_frame_width=352 --yuv=frame_height=288 --barcode_height=32
--stats_file=<path_and_name_of_stats_file>
By default the width of the barcodes is the same as the width of the base YUV frames.
This could be changes with the command-line option --barcode_width
Review URL: https://webrtc-codereview.appspot.com/679010
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2612 4adac7df-926f-26a2-2b94-8c16560cd09d
This fix is needed for our own build slaves to work properly on Windows and is caused by the hacky way we created the Libvpx waterfall to avoid duplicating unnecessary Python code.
TBR=phoglund
BUG=None
TEST=Tested on Windows build slave.
Review URL: https://webrtc-codereview.appspot.com/639009
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2387 4adac7df-926f-26a2-2b94-8c16560cd09d
The test is now named 'bitrate_controller_unittests'.
This CL also enables it on the bots. The test is excluded on ASAN since
it fails when compiled with projects generated with GYP_DEFINES='asan=1' (see issue 555).
BUG=None
TEST=bitrate_controller_unittests was tested in Debug+Release on Linux, Mac and Windows + TSAN and memcheck.
Review URL: https://webrtc-codereview.appspot.com/612004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2333 4adac7df-926f-26a2-2b94-8c16560cd09d
Chrome bots are now using the correct scheduler.
Created separate watchlist e-mail for libvpx builds to avoid spamming WebRTC when these builds fail.
BUG=None
TEST=Tested on local master and slaves.
Review URL: https://webrtc-codereview.appspot.com/620004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2331 4adac7df-926f-26a2-2b94-8c16560cd09d
I think I found a decent way to avoid duplicating the whole configuration for the libvpx waterfall. It's not perfect but it works. I still haven't figured out what the best way to manage the slaves would be however, since they will need to know which master to connect to, or they'll pick the default they're configured for in slaves.cfg, which is the WebRTC waterfall (can be overridden with the TESTING_MASTER property, but that's only to be used for development and testing.
BUG=None
TEST=Tested on local master and slaves.
Review URL: https://webrtc-codereview.appspot.com/595005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2310 4adac7df-926f-26a2-2b94-8c16560cd09d
Skeleton suppression files for future WebRTC suppressions are added and are included in addition to the ones Chrome are using and maintaining when our wrapper script executes.
Also added tweaked PRESUBMIT checks based on the Chrome code, that verifies
that suppressions are added correctly. I tested that they work by adding an invalid
suppression.
BUG=544
TEST=Tested running tools/valgrind-webrtc/webrtc_tests.sh --tool=tsan -t out/Debug/system_wrappers_unittests and it reports far less errors. Tested adding bad suppression and it was caught by the PRESUBMIT check.
Review URL: https://webrtc-codereview.appspot.com/601004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2304 4adac7df-926f-26a2-2b94-8c16560cd09d