Last updated on 2026-02-17 03:50:43 CET.
| Package | ERROR | NOTE | OK |
|---|---|---|---|
| centerline | 1 | 2 | 11 |
Current CRAN status: ERROR: 1, NOTE: 2, OK: 11
Version: 0.2.5
Check: tests
Result: ERROR
Running ‘testthat.R’ [28s/48s]
Running the tests in ‘tests/testthat.R’ failed.
Complete output:
> # This file is part of the standard setup for testthat.
> # It is recommended that you do not modify it.
> #
> # Where should you do additional test configuration?
> # Learn more about the roles of various files in:
> # * https://r-pkgs.org/testing-design.html#sec-tests-files-overview
> # * https://testthat.r-lib.org/articles/special-files.html
>
> library(testthat)
> library(centerline)
>
> test_check("centerline")
[gannet:851215:0:851215] Caught signal 11 (Segmentation fault: address not mapped to object at address 0x28)
==== backtrace (tid: 851215) ====
0 /lib64/libucs.so.0(ucs_handle_error+0x2e4) [0x7f34b057ddf4]
1 /lib64/libucs.so.0(+0x17aed) [0x7f34b057faed]
2 /lib64/libucs.so.0(+0x17cbd) [0x7f34b057fcbd]
3 /lib64/libc.so.6(+0x19c30) [0x7f34c6d29c30]
4 /data/gannet/ripley/R/test-clang/raybevel/libs/raybevel.so(_Z16skeletonize_rcppN4Rcpp6MatrixILi14ENS_15PreserveStorageEEENS_6VectorILi19ES1_EEd+0xcb9) [0x7f33eacd6f39]
5 /data/gannet/ripley/R/test-clang/raybevel/libs/raybevel.so(_raybevel_skeletonize_rcpp+0x83) [0x7f33eacbef83]
6 /data/gannet/ripley/R/R-clang/bin/exec/R(+0x8f583) [0x55ee3a8f3583]
7 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xde350) [0x55ee3a942350]
8 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xc718c) [0x55ee3a92b18c]
9 /data/gannet/ripley/R/R-clang/bin/exec/R(Rf_eval+0x1a5) [0x55ee3a92a915]
10 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xe3d09) [0x55ee3a947d09]
11 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xe320c) [0x55ee3a94720c]
12 /data/gannet/ripley/R/R-clang/bin/exec/R(R_forceAndCall+0x365) [0x55ee3a94a6e5]
13 /data/gannet/ripley/R/R-clang/bin/exec/R(+0x157ec) [0x55ee3a8797ec]
14 /data/gannet/ripley/R/R-clang/bin/exec/R(+0x12e168) [0x55ee3a992168]
15 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xcf00c) [0x55ee3a93300c]
16 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xc718c) [0x55ee3a92b18c]
17 /data/gannet/ripley/R/R-clang/bin/exec/R(Rf_eval+0x1a5) [0x55ee3a92a915]
18 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xe3d09) [0x55ee3a947d09]
19 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xe320c) [0x55ee3a94720c]
20 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xc7b36) [0x55ee3a92bb36]
21 /data/gannet/ripley/R/R-clang/bin/exec/R(+0x130432) [0x55ee3a994432]
22 /data/gannet/ripley/R/R-clang/bin/exec/R(+0x12fe59) [0x55ee3a993e59]
23 /data/gannet/ripley/R/R-clang/bin/exec/R(+0x13098e) [0x55ee3a99498e]
24 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xcf00c) [0x55ee3a93300c]
25 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xc718c) [0x55ee3a92b18c]
26 /data/gannet/ripley/R/R-clang/bin/exec/R(Rf_eval+0x1a5) [0x55ee3a92a915]
27 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xe3d09) [0x55ee3a947d09]
28 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xe320c) [0x55ee3a94720c]
29 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xc7b36) [0x55ee3a92bb36]
30 /data/gannet/ripley/R/R-clang/bin/exec/R(+0x130432) [0x55ee3a994432]
31 /data/gannet/ripley/R/R-clang/bin/exec/R(+0x12fe59) [0x55ee3a993e59]
32 /data/gannet/ripley/R/R-clang/bin/exec/R(+0x13098e) [0x55ee3a99498e]
33 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xcf00c) [0x55ee3a93300c]
34 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xc718c) [0x55ee3a92b18c]
35 /data/gannet/ripley/R/R-clang/bin/exec/R(Rf_eval+0x1a5) [0x55ee3a92a915]
36 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xe3d09) [0x55ee3a947d09]
37 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xe320c) [0x55ee3a94720c]
38 /data/gannet/ripley/R/R-clang/bin/exec/R(Rf_eval+0x5f6) [0x55ee3a92ad66]
39 /data/gannet/ripley/R/R-clang/bin/exec/R(+0x8d53c) [0x55ee3a8f153c]
40 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xced8b) [0x55ee3a932d8b]
41 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xc718c) [0x55ee3a92b18c]
42 /data/gannet/ripley/R/R-clang/bin/exec/R(Rf_eval+0x1a5) [0x55ee3a92a915]
43 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xe3d09) [0x55ee3a947d09]
44 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xe320c) [0x55ee3a94720c]
45 /data/gannet/ripley/R/R-clang/bin/exec/R(Rf_eval+0x5f6) [0x55ee3a92ad66]
46 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xe83cb) [0x55ee3a94c3cb]
47 /data/gannet/ripley/R/R-clang/bin/exec/R(Rf_eval+0x3d0) [0x55ee3a92ab40]
48 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xea778) [0x55ee3a94e778]
49 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xced8b) [0x55ee3a932d8b]
50 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xc718c) [0x55ee3a92b18c]
51 /data/gannet/ripley/R/R-clang/bin/exec/R(Rf_eval+0x1a5) [0x55ee3a92a915]
52 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xe3d09) [0x55ee3a947d09]
53 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xe320c) [0x55ee3a94720c]
54 /data/gannet/ripley/R/R-clang/bin/exec/R(Rf_eval+0x5f6) [0x55ee3a92ad66]
55 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xeab58) [0x55ee3a94eb58]
56 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xced8b) [0x55ee3a932d8b]
57 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xc718c) [0x55ee3a92b18c]
58 /data/gannet/ripley/R/R-clang/bin/exec/R(Rf_eval+0x1a5) [0x55ee3a92a915]
59 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xe3d09) [0x55ee3a947d09]
60 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xe320c) [0x55ee3a94720c]
61 /data/gannet/ripley/R/R-clang/bin/exec/R(R_forceAndCall+0x365) [0x55ee3a94a6e5]
=================================
*** caught segfault ***
address 0x4d2000cfd0f, cause 'unknown'
Traceback:
1: skeletonize_rcpp(vertices, holes, 0)
2: raybevel::skeletonize(vertices = geos_outer, holes = geos_inner, return_raw_ss = FALSE)
3: FUN(X[[i]], ...)
4: lapply(input, cnt_skeleton_straight, keep = keep)
5: do.call(c, lapply(input, cnt_skeleton_straight, keep = keep))
6: cnt_skeleton.geos_geometry(input = input_geos, ...)
7: cnt_skeleton(input = input_geos, ...)
8: cnt_path_guess.sf(polygon, method = "straight", keep = 1.1)
9: cnt_path_guess(polygon, method = "straight", keep = 1.1)
10: eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
11: withCallingHandlers(expr, condition = function(cnd) { if (!is.null(matched) || !matches(cnd)) { return() } if (can_entrace(cnd)) { cnd <- cnd_entrace(cnd) } matched <<- cnd if (inherits(cnd, "message") || inherits(cnd, "warning")) { cnd_muffle(cnd) } else if (inherits(cnd, "error") || inherits(cnd, "skip")) { return_from(tl, cnd) }})
12: .capture(act$val <- eval_bare(quo_get_expr(.quo), quo_get_env(.quo)), ...)
13: quasi_capture(enquo(object), label, capture_matching_condition, matches = matcher)
14: expect_condition_matching_("warning", { { object }}, regexp = regexp, class = class, ..., inherit = inherit, info = info, label = label)
15: expect_warning(cnt_path_guess(polygon, method = "straight", keep = 1.1))
16: eval(code, test_env)
17: eval(code, test_env)
18: withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt)
19: doTryCatch(return(expr), name, parentenv, handler)
20: tryCatchOne(expr, names, parentenv, handlers[[1L]])
21: tryCatchList(expr, classes, parentenv, handlers)
22: tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal)
23: doWithOneRestart(return(expr), restart)
24: withOneRestart(expr, restarts[[1L]])
25: withRestarts(tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal), end_test = function() { })
26: test_code(code, parent.frame())
27: test_that("cnt_path_guess inherits params", { skip_if_not_installed("raybevel") polygon <- polygon_sf skeleton <- skeleton_sf result <- cnt_path_guess(polygon) result_keep1 <- cnt_path_guess(polygon, keep = 1) result_straight <- cnt_path_guess(polygon, method = "straight") result_straight_geos <- cnt_path_guess(polygon, method = "s", return_geos = TRUE) expect_s3_class(result, "sf") expect_s3_class(result_keep1, "sf") expect_s3_class(result_straight, "sf") expect_contains(get_geom_type(result), "LINESTRING") expect_contains(get_geom_type(result_keep1), "LINESTRING") expect_contains(get_geom_type(result_straight), "LINESTRING") expect_s3_class(result_straight_geos, c("geos_geometry")) expect_contains(get_geom_type(result_straight_geos), "linestring") expect_equal(wk::wk_crs(result_straight_geos), wk::wk_crs(polygon)) expect_false(identical(sf::st_length(result), sf::st_length(result_straight))) expect_error(cnt_path_guess(polygon, keep = 10)) expect_error(cnt_path_guess(polygon, keep = -1)) expect_error(cnt_path_guess(polygon, method = "asdf")) expect_error(cnt_path_guess(polygon, keep = 1, method = "asdf")) expect_warning(cnt_path_guess(polygon, method = "straight", keep = 1.1))})
28: eval(code, test_env)
29: eval(code, test_env)
30: withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt)
31: doTryCatch(return(expr), name, parentenv, handler)
32: tryCatchOne(expr, names, parentenv, handlers[[1L]])
33: tryCatchList(expr, classes, parentenv, handlers)
34: tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal)
35: doWithOneRestart(return(expr), restart)
36: withOneRestart(expr, restarts[[1L]])
37: withRestarts(tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal), end_test = function() { })
38: test_code(code = exprs, env = env, reporter = get_reporter() %||% StopReporter$new())
39: source_file(path, env = env(env), desc = desc, shuffle = shuffle, error_call = error_call)
40: FUN(X[[i]], ...)
41: lapply(test_paths, test_one_file, env = env, desc = desc, shuffle = shuffle, error_call = error_call)
42: doTryCatch(return(expr), name, parentenv, handler)
43: tryCatchOne(expr, names, parentenv, handlers[[1L]])
44: tryCatchList(expr, classes, parentenv, handlers)
45: tryCatch(code, testthat_abort_reporter = function(cnd) { cat(conditionMessage(cnd), "\n") NULL})
46: with_reporter(reporters$multi, lapply(test_paths, test_one_file, env = env, desc = desc, shuffle = shuffle, error_call = error_call))
47: test_files_serial(test_dir = test_dir, test_package = test_package, test_paths = test_paths, load_helpers = load_helpers, reporter = reporter, env = env, stop_on_failure = stop_on_failure, stop_on_warning = stop_on_warning, desc = desc, load_package = load_package, shuffle = shuffle, error_call = error_call)
48: test_files(test_dir = path, test_paths = test_paths, test_package = package, reporter = reporter, load_helpers = load_helpers, env = env, stop_on_failure = stop_on_failure, stop_on_warning = stop_on_warning, load_package = load_package, parallel = parallel, shuffle = shuffle)
49: test_dir("testthat", package = package, reporter = reporter, ..., load_package = "installed")
50: test_check("centerline")
An irrecoverable exception occurred. R is aborting now ...
Flavor: r-devel-linux-x86_64-fedora-clang
Version: 0.2.5
Check: dependencies in R code
Result: NOTE
2025-12-23 03:34:32.370 R[1391:746976] XType: Using static font registry.
Flavor: r-release-macos-arm64
Version: 0.2.5
Check: dependencies in R code
Result: NOTE
2025-12-23 08:16:27.782 R[53542:379205] XType: Using static font registry.
Flavor: r-oldrel-macos-arm64