C++ C Shell CMake M4 Python
Clone or download
bassosimone test/nettests: use new collector implementation (#1639)
* test/nettests: use new collector implementation

While there, be prepared for using the production infrastructure
for CI, by adding specific annotations to CI-run tests.

cc: @hellais

* repair broken test

* .ci/docker/cmake: set timeout to 300 seconds

This will make stuck tests fail _before_ the default timeout of
travis kicks in, thus telling us which test(s) are stuck.

Prompted by: https://travis-ci.org/measurement-kit/measurement-kit/jobs/388693938

* Fix URL by removing final slash
Latest commit 4586aed Jun 7, 2018
Permalink
Failed to load latest commit information.
.ci test/nettests: use new collector implementation (#1639) Jun 7, 2018
build Gather X-macros from documentation (#1628) May 25, 2018
cmake Rewrite nettests.hpp API in terms of ffi.h API (#1630) May 26, 2018
doc [ci skip] Make sure we only document ffi.h May 2, 2018
example Gather X-macros from documentation (#1628) May 25, 2018
include/measurement_kit release 0.9.0-alpha.2: step 2: update headers May 30, 2018
m4 Use autotools step 1 May 28, 2014
script release 0.9.0-alpha.2: step 1: update version number May 30, 2018
src Rewrite nettests.hpp API in terms of ffi.h API (#1630) May 26, 2018
test test/nettests: use new collector implementation (#1639) Jun 7, 2018
.clang-format refactor(common/util): split interface and impl Sep 14, 2017
.codedocs feature(documentation): revamp documentation for common (#1362) Sep 15, 2017
.gitignore Simpler build system (#1554) Feb 14, 2018
.travis.yml Make sure clang's CI build runs tests (#1629) May 23, 2018
AUTHORS Update AUTHORS Jan 10, 2018
BUGS Big rename from libight to measurement_kit Jul 29, 2015
CMakeLists.txt Allow compiling measurement_kit.exe with MSVC (#1620) May 8, 2018
CONTRIBUTING.md [ci skip] Unify CONTRIBUTING.md and doc/coding-style.md May 2, 2018
ChangeLog.md Write changelog for v0.9.0-alpha.2 May 30, 2018
Doxyfile release 0.9.0-alpha.2: step 1: update version number May 30, 2018
LICENSE Sync up toplevel files with stable May 5, 2017
Makefile.am Replace valgrind with asan, ubsan, lsan, etc. (#1626) May 21, 2018
NOTICE nettests: add support for UUID4 May 13, 2017
README.md [ci skip] README.md: fix wrong link May 2, 2018
TODO.md Update documentation for v0.2.0 (#663) Jun 29, 2016
acinclude.m4 acinclude.m4 configure.ac: fixes to compile with mingw-w64-cxx11 (#1615) May 4, 2018
appveyor.yml Run tests with MSVC at AppVeyor (#1623) May 17, 2018
autogen.sh Gather X-macros from documentation (#1628) May 25, 2018
configure.ac release 0.9.0-alpha.2: step 1: update version number May 30, 2018
measurement_kit.podspec release 0.9.0-alpha.2: step 1: update version number May 30, 2018

README.md

Measurement Kit

Portable C++14 network measurement library

GitHub license Github Releases Github Issues


branch travis-ci coveralls appveyor
master Travis Build Status Coverage Status Build status
stable Travis Build Status Coverage Status Build status

Measurement Kit is a library that implements open network measurement methodologies (performance, censorship, etc.) for Android, iOS, Windows, macOS, and Linux systems.

It is meant to be embedded by third party applications with specific network measurement needs and/or to be used by researchers as a basis to implement novel tools.

Please, refer to the include/measurement_kit folder documentation for an up-to-date list of available tests.

API and examples

Measurement Kit exposes a simple C-like API that is described in detail in the include/measurement_kit folder documentation. You can find examples of usage of such API into the example folder.

Generic Unix instructions

You need to have the autotools, a C++14 capable C++ compiler, a C++14 capable C++ library, a C11 capable C compiler, and all the dependencies installed. For current information, we encourage you to read the very simple build script that we use on Travis CI to setup a Unix environment, from which you can gather up-to-date information regarding required packages on a Debian like system. To this end, please refer to the content of the .ci/docker folder.

With all the dependencies statisfied, build with:

./autogen.sh
./configure
make
sudo make install    # optional, if you want to install to `/usr/local`
sudo /sbin/ldconfig  # required only on Linux if you install

The configure script will also provide advice if a dependency is missing. Also, ./configure --help can be useful.

Homebrew instructions

Please check the measurement-kit/homebrew-measurement-kit tap for Homebrew.

Mingw-w64 instructions

For information on how to compile Measurement Kit using the Mingw-w64 compiler distribution for Windows, please refer to the measurement-kit/script-build-unix repository.

To better understand how to compile using Mingw-w64, it is also useful to look into how we build Measurement Kit on AppVeyor. To this end, we encourage you check the .ci/appveyor folder.

Android instructions

For cross-compiling Measurement Kit for Android, please refer to the measurement-kit/script-build-unix repository. For integrating Measurement Kit cross-compiled for Android with Java classes that you can use from Android, please see measurement-kit/android-libs. For how to use Measurement Kit in an Android project, please see measurement-kit/android-example.

iOS instructions

For cross-compiling Measurement Kit for iOS, please refer to the measurement-kit/script-build-unix repository. For integrating Measurement Kit cross-compiled for iOS into a framework that you can use from iOS, please see measurement-kit/ios-libs. For how to use Measurement Kit in an iOS project, please see measurement-kit/ios-example.

How to develop for Measurement Kit

To clone Measurement Kit repository, do:

git clone https://github.com/measurement-kit/measurement-kit

See CONTRIBUTING.md for more information.