Skip to content

Commit d6f1457

Browse files
authored
Uncyclo content updated, moved to main repo, publishing GH Action added (#605)
1 parent acb5313 commit d6f1457

File tree

132 files changed

+8428
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

132 files changed

+8428
-0
lines changed

.github/workflows/docs-to-wiki.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: Publish wiki
2+
on:
3+
workflow_dispatch:
4+
branches: [main]
5+
paths:
6+
- wiki
7+
- .github/workflows/publish-wiki.yml
8+
concurrency:
9+
group: publish-wiki
10+
cancel-in-progress: true
11+
permissions:
12+
contents: write
13+
jobs:
14+
publish-wiki:
15+
runs-on: ubuntu-latest
16+
steps:
17+
- uses: actions/checkout@v3
18+
- uses: impresscms-dev/[email protected]
19+
with:
20+
path: wiki
21+
- uses: Andrew-Chen-Wang/github-wiki-action@v4

wiki/Home.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Welcome to UnitTestBot C/C++ Uncyclo!
2+
3+
Generate ready-to-use test cases for your C/C++ code and feel free to contribute.
4+
5+
## What is UnitTestBot C/C++
6+
7+
UnitTestBot C/C++ is a user-friendly wrapper over the enhanced [KLEE](http://klee.github.io/) symbolic execution engine.
8+
9+
The KLEE engine is built on top of the LLVM compiler infrastructure and can automatically generate inputs for C code
10+
unit testing. While it is a well-developed and maintained tool, it requires environment preparation, preprocessing,
11+
and afterwork.
12+
13+
UnitTestBot C/C++ automates all these stages and provides users with a step-by-step wizard UI. It generates
14+
ready-to-use C++ test cases in [Google Test](http://google.github.io/googletest/) format — with inputs, method
15+
bodies, and auto-generated stubs.
16+
17+
## Client-server architecture
18+
19+
The KLEE engine requires using a specific toolchain: exact LLVM and GCC versions,
20+
and a particular solver. The other version of the necessary utility may be installed on a user
21+
machine — it may cause a version conflict: one cannot use different LLVM or compiler versions in a one-machine configuration.
22+
23+
We implemented UnitTestBot C/C++ based on a client-server model: it is a separate server where UnitTestBot C/C++
24+
deploys the necessary _toolchain_ and performs the _resource-consuming operations_, and the client is an IDE plugin.
25+
26+
## Building your project
27+
28+
If you cannot build your own project, you will not be able to generate tests using UnitTestBot C/C++.
29+
30+
## Supported language features
31+
32+
Though KLEE is a mature project, it still supports not all the C language constructs. For UnitTestBot C/C++, we
33+
implemented several KLEE patches to support _floating point_ types, _input/output_ operations, and _inline
34+
assemblies_.
35+
36+
UnitTestBot C/C++ still has limited support for C++ features. Check supported [C](c-syntax) and [C++](cpp-syntax) syntax.

wiki/_Sidebar.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# User guide
2+
3+
## [System requirements](system-requirements)
4+
5+
## [UnitTestBot server](install-server)
6+
7+
* [**Linux**](linux)
8+
* [Local installation](install-server-on-ubuntu)
9+
* [Remote installation via Docker](linux-remote)
10+
* [**Windows**](windows)
11+
* [Local installation via WSL](windows-local)
12+
* [Remote installation via Docker](windows-remote)
13+
* [**macOS**](macos)
14+
15+
## [UnitTestBot client](install_client)
16+
17+
### [Visual Studio Code plugin](vscode-overall)
18+
19+
* [Install and configure the plugin](vscode-install-and-configure)
20+
* [Generate tests with default configuration](vscode-generate-tests)
21+
* [Fine-tune test generation](vscode-fine-tune)
22+
* [Get use of test results](vscode-get-use-of-results)
23+
24+
### [CLion plugin](clion-overall)
25+
26+
* [Install and configure the plugin](clion-install-and-configure)
27+
* [Generate tests with default configuration](clion-generate-tests)
28+
* [Fine-tune test generation](clion-fine-tune)
29+
* [Get use of test results](clion-get-use-of-results)
30+
31+
## [GitHub Action](GitHub-action)
32+
33+
## Supported syntax
34+
35+
* [C](c-syntax)
36+
* [C++](cpp-syntax)
37+
38+
# Contributor guides
39+
40+
## Developer guides
41+
42+
* [To do](todo)
43+
* [Create a release](create-release)
44+
* [Testing release in Docker](testing-release-utbotcpp-in-docker)
45+
* [Label usage guideline](Labels-usage-guidelines)
46+
* [Troubleshooting](troubleshooting)
47+
48+
## Advanced
49+
50+
* [How UTBot Works](utbot-inside)
51+
* [How types are fetched and stored](types-fetching)
52+
* [Makefiles](makefiles)
53+
* [Symbolic Stdin](symbolic-stdin)
54+
* [UTBot Logging Principles](utbot-logging)
55+
* [Targets](targets)
56+
* [Compile database](compile-database)
57+
* [Coverage](coverage)
58+
* [Generating and running test](generating-and-running-tests)
59+
* [Incrementality](incrementality)
60+
* [Linking bitcode](linking-bitcode)
61+
* [Preparing source for klee](preparing-sources-for-klee)
62+
* [Stubs inside](stubs-inside)
63+
* [KLEE patches](klee-patches)
64+
* [Lazy initialization](LI)
65+
* [Symcretes](Symcretes)
66+
* [Objects of symbolic size](Symsizes)

0 commit comments

Comments
 (0)