Skip to content

Commit

Permalink
Merge pull request #364 from bareos/dev/pstorz/master/unittests-in-je…
Browse files Browse the repository at this point in the history
…nkins

dev/pstorz/master/unittests in jenkins
  • Loading branch information
franku committed Dec 6, 2019
2 parents 984b60a + 0d6e21d commit 656b149
Show file tree
Hide file tree
Showing 165 changed files with 6,332 additions and 5,158 deletions.
141 changes: 141 additions & 0 deletions .cmake-format.py
@@ -0,0 +1,141 @@

# --------------------------
# General Formatting Options
# --------------------------
# How wide to allow formatted cmake files
line_width = 80

# How many spaces to tab for indent
tab_size = 2

# If an argument group contains more than this many sub-groups (parg or kwarg
# groups), then force it to a vertical layout.
max_subgroups_hwrap = 2

# If a positional argument group contains more than this many arguments, then
# force it to a vertical layout.
max_pargs_hwrap = 8

# If true, separate flow control names from their parentheses with a space
separate_ctrl_name_with_space = False

# If true, separate function names from parentheses with a space
separate_fn_name_with_space = False

# If a statement is wrapped to more than one line, than dangle the closing
# parenthesis on it's own line.
dangle_parens = True

# If the trailing parenthesis must be 'dangled' on it's on line, then align it
# to this reference: `prefix`: the start of the statement, `prefix-indent`: the
# start of the statement, plus one indentation level, `child`: align to the
# column of the arguments
dangle_align = 'prefix'

min_prefix_chars = 4

# If the statement spelling length (including space and parenthesis is larger
# than the tab width by more than this among, then force reject un-nested
# layouts.
max_prefix_chars = 10

# If a candidate layout is wrapped horizontally but it exceeds this many lines,
# then reject the layout.
max_lines_hwrap = 2

# What style line endings to use in the output.
line_ending = 'unix'

# Format command names consistently as 'lower' or 'upper' case
command_case = 'canonical'

# Format keywords consistently as 'lower' or 'upper' case
keyword_case = 'unchanged'

# Specify structure for custom cmake functions
additional_commands = {
"bareos_add_test": {
"pargs": 1,
"flags": [
"",
""
],
"kwargs": {
"ADDITIONAL_SOURCES": "*",
"LINK_LIBRARIES": "*",
"COMPILE_DEFINITIONS": "*"
}
}
}

# A list of command names which should always be wrapped
always_wrap = []

# If true, the argument lists which are known to be sortable will be sorted
# lexicographically
enable_sort = True

# If true, the parsers may infer whether or not an argument list is sortable
# (without annotation).
autosort = False

# If a comment line starts with at least this many consecutive hash characters,
# then don't lstrip() them off. This allows for lazy hash rulers where the first
# hash char is not separated by space
hashruler_min_length = 10

# A dictionary containing any per-command configuration overrides. Currently
# only `command_case` is supported.
per_command = {}

# A dictionary mapping layout nodes to a list of wrap decisions. See the
# documentation for more information.
layout_passes = {}


# --------------------------
# Comment Formatting Options
# --------------------------
# What character to use for bulleted lists
bullet_char = '*'

# What character to use as punctuation after numerals in an enumerated list
enum_char = '.'

# enable comment markup parsing and reflow
enable_markup = True

# If comment markup is enabled, don't reflow the first comment block in each
# listfile. Use this to preserve formatting of your copyright/license
# statements.
first_comment_is_literal = True

# If comment markup is enabled, don't reflow any comment block which matches
# this (regex) pattern. Default is `None` (disabled).
literal_comment_pattern = None

# Regular expression to match preformat fences in comments
# default=r'^\s*([`~]{3}[`~]*)(.*)$'
fence_pattern = '^\\s*([`~]{3}[`~]*)(.*)$'

# Regular expression to match rulers in comments
# default=r'^\s*[^\w\s]{3}.*[^\w\s]{3}$'
ruler_pattern = '^\\s*[^\\w\\s]{3}.*[^\\w\\s]{3}$'

# If true, then insert a space between the first hash char and remaining hash
# chars in a hash ruler, and normalize it's length to fill the column
canonicalize_hashrulers = True


# ---------------------------------
# Miscellaneous Options
# ---------------------------------
# If true, emit the unicode byte-order mark (BOM) at the start of the file
emit_byteorder_mark = False

# Specify the encoding of the input file. Defaults to utf-8.
input_encoding = 'utf-8'

# Specify the encoding of the output file. Defaults to utf-8. Note that cmake
# only claims to support utf-8 so be careful when using anything else
output_encoding = 'utf-8'
69 changes: 44 additions & 25 deletions CMakeLists.txt
Expand Up @@ -21,39 +21,58 @@ cmake_minimum_required(VERSION 3.0)

project(bareos NONE)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/core/cmake")

set(default_build_type "Debug")

find_package(Git)
include(BareosVersionFromGit)
include(BareosExtractVersionInfo)

set(BUILDNAME
"${BAREOS_FULL_VERSION}"
CACHE STRING "site name variable for CDash"
)
set(SITE
"${CMAKE_SYSTEM}"
CACHE STRING "build name variable for CDash"
)
# enable "make test"
enable_testing()
set(CMAKE_CTEST_COMMAND ctest -V)
include(CTest)

IF(docs-build-json)
# check for wrong combinations of build flags
IF(docs-only)
MESSAGE(FATAL_ERROR "\n\"docs-build-json\" needs bareos-executables and cannot be combined with \"docs-only\"")
ENDIF()
IF(NOT traymonitor)
MESSAGE(FATAL_ERROR "\n\"docs-build-json\" needs the traymonitor executable: add \"-Dtraymonitor=yes\"")
ENDIF()
ENDIF()

IF(docs-only)
if(docs-build-json)
# check for wrong combinations of build flags
if(docs-only)
message(
FATAL_ERROR
"\n\"docs-build-json\" needs bareos-executables and cannot be combined with \"docs-only\""
)
endif()
if(NOT traymonitor)
message(
FATAL_ERROR
"\n\"docs-build-json\" needs the traymonitor executable: add \"-Dtraymonitor=yes\""
)
endif()
endif()

if(docs-only)
set(BUILD_BAREOS_BINARIES no)
ELSE()
else()
set(BUILD_BAREOS_BINARIES yes)
ENDIF()

find_package(Git)
include(BareosVersionFromGit)

IF(BUILD_BAREOS_BINARIES)
add_subdirectory(core)
add_subdirectory(webui)
add_subdirectory(systemtests)
ENDIF()
endif()

IF(docs OR docs-only OR docs-build-json)
add_subdirectory(docs/manuals)
ENDIF()
if(BUILD_BAREOS_BINARIES)
add_subdirectory(core)
add_subdirectory(webui)
add_subdirectory(systemtests)
endif()

if(docs
OR docs-only
OR docs-build-json
)
add_subdirectory(docs/manuals)
endif()
14 changes: 7 additions & 7 deletions CTestConfig.cmake
@@ -1,10 +1,10 @@
## This file should be placed in the root directory of your project.
## Then modify the CMakeLists.txt file in the root directory of your
## project to incorporate the testing dashboard.
##
## # The following are required to submit to the CDash dashboard:
## ENABLE_TESTING()
## INCLUDE(CTest)
# This file should be placed in the root directory of your project.
# Then modify the CMakeLists.txt file in the root directory of your
# project to incorporate the testing dashboard.
#
# # The following are required to submit to the CDash dashboard:
# ENABLE_TESTING()
# INCLUDE(CTest)

set(CTEST_PROJECT_NAME "Bareos")
set(CTEST_NIGHTLY_START_TIME "23:00:00 CET")
Expand Down
80 changes: 35 additions & 45 deletions cmake/BareosVersionFromGit.cmake
Expand Up @@ -18,66 +18,56 @@
# Extract version information and commit timestamp if run in a git checkout

if(Git_FOUND)
execute_process(COMMAND ${GIT_EXECUTABLE}
log
-1
--pretty=format:%ct
RESULT_VARIABLE GIT_COMMIT_TIMESTAMP_RESULT
OUTPUT_VARIABLE GIT_COMMIT_TIMESTAMP
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
ERROR_QUIET)
execute_process(
COMMAND ${GIT_EXECUTABLE} log -1 --pretty=format:%ct
RESULT_VARIABLE GIT_COMMIT_TIMESTAMP_RESULT
OUTPUT_VARIABLE GIT_COMMIT_TIMESTAMP
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
ERROR_QUIET
)
endif()

if(GIT_COMMIT_TIMESTAMP_RESULT EQUAL 0)
execute_process(COMMAND ${GIT_EXECUTABLE}
describe
--tags
--exact-match
--match
"Release/*"
--dirty=.dirty
RESULT_VARIABLE GIT_DESCRIBE_RELEASE_RESULT
OUTPUT_VARIABLE GIT_DESCRIBE_OUTPUT
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(
COMMAND ${GIT_EXECUTABLE} describe --tags --exact-match --match "Release/*"
--dirty=.dirty
RESULT_VARIABLE GIT_DESCRIBE_RELEASE_RESULT
OUTPUT_VARIABLE GIT_DESCRIBE_OUTPUT
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(NOT GIT_DESCRIBE_RELEASE_RESULT EQUAL 0)
execute_process(COMMAND ${GIT_EXECUTABLE}
describe
--tags
--match
"WIP/*"
--dirty=.dirty
RESULT_VARIABLE GIT_DESCRIBE_WIP_RESULT
OUTPUT_VARIABLE GIT_DESCRIBE_OUTPUT
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(
COMMAND ${GIT_EXECUTABLE} describe --tags --match "WIP/*" --dirty=.dirty
RESULT_VARIABLE GIT_DESCRIBE_WIP_RESULT
OUTPUT_VARIABLE GIT_DESCRIBE_OUTPUT
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE
)
endif()
endif()

if(NOT GIT_DESCRIBE_OUTPUT STREQUAL "")
set(GIT_DESCRIBE_REGEX_LONG
"^([^/]+)/([^-]+)-(([^-]+)?)-?([0-9]+)-g([0-9a-f]+(.dirty)?)[ \n]*")
"^([^/]+)/([^-]+)-(([^-]+)?)-?([0-9]+)-g([0-9a-f]+(.dirty)?)[ \n]*"
)
set(GIT_DESCRIBE_REPLACE_LONG "\\2~\\3\\5.\\6")
set(GIT_DESCRIBE_REGEX_SHORT "^([^/]+)/([0-9.]+)((-[^-]+)?)((.dirty)?)[ \n]*")
set(GIT_DESCRIBE_REPLACE_SHORT "\\2\\3\\5")

string(REGEX MATCH
"${GIT_DESCRIBE_REGEX_LONG}"
GIT_DESCRIBE_REGEX_LONG_MATCH
"${GIT_DESCRIBE_OUTPUT}")
string(REGEX MATCH "${GIT_DESCRIBE_REGEX_LONG}" GIT_DESCRIBE_REGEX_LONG_MATCH
"${GIT_DESCRIBE_OUTPUT}"
)
if(GIT_DESCRIBE_REGEX_LONG_MATCH STREQUAL "")
string(REGEX
REPLACE "${GIT_DESCRIBE_REGEX_SHORT}"
"${GIT_DESCRIBE_REPLACE_SHORT}"
GIT_DESCRIBE_VERSION
"${GIT_DESCRIBE_OUTPUT}")
string(
REGEX
REPLACE "${GIT_DESCRIBE_REGEX_SHORT}" "${GIT_DESCRIBE_REPLACE_SHORT}"
GIT_DESCRIBE_VERSION "${GIT_DESCRIBE_OUTPUT}"
)
else()
string(REGEX
REPLACE "${GIT_DESCRIBE_REGEX_LONG}"
"${GIT_DESCRIBE_REPLACE_LONG}"
GIT_DESCRIBE_VERSION
"${GIT_DESCRIBE_OUTPUT}")
REPLACE "${GIT_DESCRIBE_REGEX_LONG}" "${GIT_DESCRIBE_REPLACE_LONG}"
GIT_DESCRIBE_VERSION "${GIT_DESCRIBE_OUTPUT}"
)
endif()
endif()

0 comments on commit 656b149

Please sign in to comment.