Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
las3_pub
/
predictable_parallel_patterns
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
829b6757
authored
6 years ago
by
Florian Fritz
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'setup-ci' into 'master'
Fix CI Setup See merge request
!1
parents
a1256f23
a1a7481f
Pipeline
#1097
passed with stages
in 1 minute 33 seconds
Changes
4
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
18 additions
and
16 deletions
+18
-16
.gitlab-ci.yml
+2
-8
ci_scripts/build_cmake_release.sh
+7
-0
ci_scripts/run_thread_sanitizer.sh
+2
-6
test/thread_tests.cpp
+7
-2
No files found.
.gitlab-ci.yml
View file @
829b6757
image
:
"
ubuntu:latest
"
image
:
"
matrim/cmake-examples:3.10.3
"
stages
:
-
build
-
test
-
sanitizer
before_script
:
-
apt update; apt-get install --yes --force-yes build-essential cmake
build_cmake
:
stage
:
build
script
:
./ci_scripts/build_cmake_release.sh
artifacts
:
paths
:
-
cmake-build-release/bin
/
-
release
/
run_tests
:
stage
:
test
...
...
@@ -25,6 +22,3 @@ run_thread_sanitizer:
stage
:
sanitizer
script
:
./ci_scripts/run_thread_sanitizer.sh
artifacts
:
paths
:
-
"
./cmake-build-release-thread-sanitizer/sanitizer.log.*"
This diff is collapsed.
Click to expand it.
ci_scripts/build_cmake_release.sh
View file @
829b6757
...
...
@@ -5,5 +5,12 @@ cd cmake-build-release
cmake ..
-DCMAKE_BUILD_TYPE
=
RELEASE
-DTHREAD_SANITIZER
=
OFF
make
rm
-r
-f
../release
mkdir ../release
cp
-r
bin/ ../release/bin
cp
-r
lib/ ../release/lib
cp
-r
../lib/pls/include/ ../release/include/
rm
-f
-r
../release/lib/pls
# echo the result of make to show it in gitlab
exit
$?
This diff is collapsed.
Click to expand it.
ci_scripts/run_thread_sanitizer.sh
View file @
829b6757
#!/usr/bin/env bash
mkdir cmake-build-release-thread-sanitizer
cd
cmake-build-release
cd
cmake-build-release
-thread-sanitizer
cmake ..
-DCMAKE_BUILD_TYPE
=
RELEASE
-DTHREAD_SANITIZER
=
ON
make
# run the actual tests with sanitizer enabled, reporting the result
TSAN_OPTIONS
=
"
log_path=sanitizer.log
exitcode=1"
./bin/tests
TSAN_OPTIONS
=
"exitcode=1"
./bin/tests
STATUS_CODE
=
$?
# rename the output log...
mv sanitizer.log.
*
sanitizer.log
touch sanitizer.log
exit
$STATUS_CODE
This diff is collapsed.
Click to expand it.
test/thread_tests.cpp
View file @
829b6757
...
...
@@ -7,6 +7,8 @@ using namespace pls::internal::base;
using
namespace
std
;
static
bool
visited
;
static
int
local_value_1
;
static
vector
<
int
>
local_value_two
;
TEST_CASE
(
"thread creation and joining"
,
"[internal/base/thread.h]"
)
{
visited
=
false
;
...
...
@@ -18,10 +20,13 @@ TEST_CASE( "thread creation and joining", "[internal/base/thread.h]") {
}
TEST_CASE
(
"thread state"
,
"[internal/base/thread.h]"
)
{
auto
t1
=
create_thread
([]()
{
REQUIRE
(
*
this_thread
::
state
<
int
>
()
==
1
);
},
1
);
auto
t2
=
create_thread
([]()
{
REQUIRE
(
*
this_thread
::
state
<
vector
<
int
>>
()
==
vector
<
int
>
{
1
,
2
}
);
},
vector
<
int
>
{
1
,
2
});
auto
t1
=
create_thread
([]()
{
local_value_1
=
*
this_thread
::
state
<
int
>
(
);
},
1
);
auto
t2
=
create_thread
([]()
{
local_value_two
=
*
this_thread
::
state
<
vector
<
int
>>
(
);
},
vector
<
int
>
{
1
,
2
});
t1
.
start
();
t2
.
start
();
t1
.
join
();
t2
.
join
();
REQUIRE
(
local_value_1
==
1
);
REQUIRE
(
local_value_two
==
vector
<
int
>
{
1
,
2
});
}
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment