Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
FROM ubuntu:24.04

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update \
&& apt-get install -y --no-install-recommends \
sudo && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* && \
echo 'ubuntu ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers

RUN apt-get update && \
apt-get install -y --no-install-recommends \
build-essential \
ca-certificates \
curl \
libffi-dev \
libyaml-dev \
zlib1g-dev && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

USER ubuntu

ENV PATH=/home/ubuntu/.rbenv/bin:/home/ubuntu/.rbenv/shims:${PATH}
RUN mkdir -p /home/ubuntu/.rbenv && \
curl -fsSL https://github.com/rbenv/rbenv/archive/refs/tags/v1.3.2.tar.gz | \
tar -xz --strip-components=1 -C /home/ubuntu/.rbenv && \
mkdir -p /home/ubuntu/.rbenv/plugins/ruby-build && \
curl -fsSL https://github.com/rbenv/ruby-build/archive/refs/tags/v20251203.tar.gz | \
tar -xz --strip-components=1 -C /home/ubuntu/.rbenv/plugins/ruby-build && \
rbenv install 2.7.8 && \
/home/ubuntu/.rbenv/versions/2.7.8/bin/gem install \
ceedling -v 0.31.0 && \
rbenv install 3.4.7 && \
/home/ubuntu/.rbenv/versions/3.4.7/bin/gem install \
ceedling -v 1.0.1

USER root

RUN apt-get update && \
apt-get install -y --no-install-recommends \
gdb \
git \
npm \
neovim \
ssh && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

WORKDIR /home/ubuntu

CMD ["/bin/bash"]
15 changes: 15 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"name": "ruby-ceedling",
"build": {
"dockerfile": "Dockerfile"
},
"remoteUser": "ubuntu",
"customizations": {
"vscode": {
"extensions": [
"hbenl.vscode-test-explorer",
"ms-vscode.cpptools"
]
}
}
}
19 changes: 18 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.

## [Unreleased]

## [1.13.0] - 2025-12-17

### Added

* Add support for ruby `#{ENV['FOO']}` syntax.
* Add support for Ceedling 1.0+ `report_tests_log_factory` plugin with CppUnit format.
* Add `ceedlingExplorer.debugTestExecutablePath` command that returns the full path to test executable.
* Add `isCeedling1Plus()` helper method for reliable Ceedling 1.0+ detection using plugin configuration.
* Add configuration documentation for both Ceedling versions in README.

### Fixed

* Fix compatibility with Ceedling 1.0+ (addresses issues #137 and #145).
* Fix debug executable path detection for Ceedling 1.0+ by checking for `report_tests_log_factory` plugin instead of relying on version string parsing.
* Ensure test executables in subdirectories (e.g., `test_name/test_name.out`) are correctly located for debugging.

## [1.12.0] - 2024-01-02

### Added
Expand Down Expand Up @@ -182,7 +198,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.

* Initial features

[Unreleased]: https://github.com/numaru/vscode-ceedling-test-adapter/compare/v1.12.0...develop
[Unreleased]: https://github.com/numaru/vscode-ceedling-test-adapter/compare/v1.13.0...develop
[1.13.0]: https://github.com/numaru/vscode-ceedling-test-adapter/compare/v1.12.0...v1.13.0
[1.12.0]: https://github.com/numaru/vscode-ceedling-test-adapter/compare/v1.11.0...v1.12.0
[1.11.0]: https://github.com/numaru/vscode-ceedling-test-adapter/compare/v1.10.1...v1.11.0
[1.10.1]: https://github.com/numaru/vscode-ceedling-test-adapter/compare/v1.10.0...v1.10.1
Expand Down
40 changes: 39 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@ Run your [Ceedling](https://github.com/ThrowTheSwitch/Ceedling) tests using the
* Open the workspace or folder containing your Ceedling project
* Configure your `project.yml` path in the VS Code's settings if required [see below](#options)
* Configure the shell path where Ceedling is installed in the VS Code's settings if required (It might be required on Windows) [see below](#options)
* Enable the `xml_tests_report` Ceedling plugin in your `project.yml` [see the Ceedling doc](https://github.com/ThrowTheSwitch/Ceedling/blob/master/docs/CeedlingPacket.md#tool-element-runtime-substitution-notational-substitution)
* Enable the appropriate Ceedling XML report plugin in your `project.yml`:
* **Ceedling 0.31.x**: Enable the `xml_tests_report` plugin [see the Ceedling doc](https://github.com/ThrowTheSwitch/Ceedling/blob/master/docs/CeedlingPacket.md#tool-element-runtime-substitution-notational-substitution)
* **Ceedling 1.0+**: Enable the `report_tests_log_factory` plugin with `cppunit` report format (see [Configuration Examples](#ceedling-plugin-configuration))
* Open the Test view
* Run your tests using the ![Run](img/run.png) icons in the Test Explorer or the CodeLenses in your test file

Expand All @@ -41,6 +43,7 @@ Property | Description
`ceedlingExplorer.testCaseMacroAliases` | An array of aliases for the `TEST_CASE` macro. By default it is `["TEST_CASE"]`
`ceedlingExplorer.testRangeMacroAliases`| An array of aliases for the `TEST_RANGE` macro. By default it is `["TEST_RANGE"]`
`ceedlingExplorer.ansiEscapeSequencesRemoved`| Should the ansi escape sequences be removed from ceedling stdout and stderr. By default it is `true`
`ceedlingExplorer.evalRubyInStrings`| Evaluate the #{ruby_code} in the string using the ruby cli. By default it is `false`
<br>

### Problem matching
Expand Down Expand Up @@ -92,6 +95,41 @@ Example pattern object (GCC compiler warnings):
}
```

### Ceedling Plugin Configuration

This extension supports both Ceedling 0.31.x and Ceedling 1.0+ by accepting either the legacy `xml_tests_report` plugin or the new `report_tests_log_factory` plugin with CppUnit format.

#### Ceedling 0.31.x Configuration

```yaml
:plugins:
:enabled:
- xml_tests_report

# Optional: customize report filename
:xml_tests_report:
:artifact_filename: report.xml # default
```

#### Ceedling 1.0+ Configuration

```yaml
:plugins:
:enabled:
- report_tests_log_factory

:report_tests_log_factory:
:reports:
- cppunit # Required for Test Explorer

# Optional: customize report filename
:report_tests_log_factory:
:cppunit:
:filename: cppunit_tests_report.xml # default
```

**Note**: The extension requires the **CppUnit XML format** specifically. While `report_tests_log_factory` can generate multiple report formats (JUnit, JSON, HTML), only the CppUnit format is compatible with this extension.

## Commands

The following commands are available in VS Code's command palette, use the ID to add them to your keyboard shortcuts:
Expand Down
Loading
Loading