Skip to main content

C++ mock object generator

Project description

drmock generator

Linux Windows macOS

drmock-generator is a component of the C++ testing/mocking framework DrMock. It takes a C++ .h file as input and generates the files for a mock implementation of the interface specified in the original header file, which the DrMock framework then consumes.

The framework contains a CMake integration of drmock-generator. Unless you're using a different build manager, you will not need to call drmock-generator directly. If you're interested in writing integrations for other build managers, feel free to contact us for support!

Installing

Run pip install . or make install install. Usage requires python>=3.7, python-clang>=11.0 and libclang. Install python-clang via pip install clang. For libclang:

sudo apt-get install libclang-7.0-dev       (on Linux)
choco install llvm                          (on Windows)

See chocolatey.org for details. On macOS, libclang is installed by default.

Using

Type drmock-generator --help for instructions. You must pass the path to the libclang.dll/.so/.dylib in one of two ways:

  • Set the environment variable CLANG_LIBRARY_FILE to the absolute path of the libclang.dll/.so/.dylib
  • Specify the absolute path to the libclang.dll/.so/.dylib using the -l parameter

The following paths are usually correct:

/usr/lib/llvm-7/lib/libclang.so                              (on Linux)
C:\Program Files\LLVM\bin\libclang.dll                       (on Windows using choco)
/Library/Developer/CommandLineTools/usr/lib/libclang.dylib   (on macOS)

On Windows, if you have trouble including STL headers, you may need to set the environment variable DRMOCK_GENERATOR_INCLUDE to the directory which contains the C++ headers. drmock-generator will then add an automatics -I%DRMOCK_GENERATOR_INCLUDE% flags to the compiler call.

Testing

To run all tests, call make. The environment variable CLANG_LIBRARY_FILE must be set in order to test the translator module.

Due to the irreducible complexity of the output of drmock-generator, any significant changes should be tested against the latest version of test suite of the C++ framework, as well.

Contributing

See CONTRIBUTING.md.

Developer notes

Details on the interface implemented by output code of drmock-generator is compliant with the specification of the C++ framework. See the documentation of the main framework for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

drmock-generator-0.6.0.tar.gz (21.6 kB view hashes)

Uploaded Source

Built Distribution

drmock_generator-0.6.0-py3-none-any.whl (24.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page