Re: r-bioc-complexheatmap: Error: C stack usage in test suite
https://stackoverflow.com/questions/1710853/how-to-run-r-on-a-server-without-x11-and-avoid-broken-dependencies/1710952#1710952
On 16.07.20 16:25, Andreas Tille wrote:
> Hi,
>
> I can confirm that the run-unit-test script works when executed with
> the package installed. I tried to provide some xserver via
>
>
> diff --git a/debian/tests/control b/debian/tests/control
> index d706a90..e72e807 100644
> --- a/debian/tests/control
> +++ b/debian/tests/control
> @@ -1,5 +1,5 @@
> Tests: run-unit-test
> -Depends: @, r-cran-testthat, r-cran-dendextend
> +Depends: @, r-cran-testthat, r-cran-dendextend, r-cran-gridtext, xvfb, xauth
> Restrictions: allow-stderr
>
>
> diff --git a/debian/tests/run-unit-test b/debian/tests/run-unit-test
> index 193d5e0..7ab30b6 100644
> --- a/debian/tests/run-unit-test
> +++ b/debian/tests/run-unit-test
> @@ -10,6 +10,14 @@ fi
> cd $AUTOPKGTEST_TMP
> cp -a /usr/share/doc/$debname/tests/* $AUTOPKGTEST_TMP
> gunzip -r *
> +
> +Xvfb :5 -screen 0 1600x1200x24 -ac +extension GLX +render -noreset -v -fbdir $AUTOPKGTEST_TMP/ &
> +XVFB_PID=$!
> +echo $XVFB_PID
> +export DISPLAY=:5
> +export XAUTHORITY=/dev/null
> +trap "kill $XVFB_PID" 0 INT QUIT ABRT PIPE TERM
> +
> for testfile in *.R; do
> echo "BEGIN TEST $testfile"
> LC_ALL=C.UTF-8 R --no-save < $testfile
>
>
> but it keeps on failing in pbuilder chroot.
>
> Any hints are welcome
>
> Andreas.
>
>
> On Fri, Jul 10, 2020 at 11:05:24PM +0200, Andreas Tille wrote:
>> Hi,
>>
>> I intend to package r-bioc-complexheatmap. The Build-Dependency
>> r-cran-getoptlong is in new as well as the Test-Depends r-cran-gridtext
>> are in new. With these packages it is possible it is possible to
>> reproduce the error of the test suite:
>>
>>
>> ...
>> ---------------------
>>
>>
>> Attaching package: ‘dendextend’
>>
>>> .
>>> The following object is masked from ‘package:stats’:
>> cutree
>>
>> m = matrix(rnorm(100), 10)
>>> dend1 = as.dendrogram(hclust(dist(m)))
>>> dend1 = adjust_dend_by_x(dend1, sort(runif(10)))
>>> .
>>> m = matrix(rnorm(50), nr = 5)
>>> dend2 = as.dendrogram(hclust(dist(m)))
>>> .
>>> dend3 = as.dendrogram(hclust(dist(m[1:2, ])))
>>> .
>>> .
>>> dend_merge = merge_dendrogram(dend3,.
>> + <---->list(set(dend1, "branches_col", "red"),.
>> + <----><------> set(dend2, "branches_col", "blue"))
>> + )
>>> .
>>> grid.dendrogram(dend_merge, test = TRUE, facing = "bottom")
>>> grid.dendrogram(dend_merge, test = TRUE, facing = "top")
>>> grid.dendrogram(dend_merge, test = TRUE, facing = "left")
>>> grid.dendrogram(dend_merge, test = TRUE, facing = "right")
>>> .
>>> grid.dendrogram(dend_merge, test = TRUE, facing = "bottom", order = "reverse")
>>> grid.dendrogram(dend_merge, test = TRUE, facing = "top", order = "reverse")
>>> grid.dendrogram(dend_merge, test = TRUE, facing = "left", order = "reverse")
>>> grid.dendrogram(dend_merge, test = TRUE, facing = "right", order = "reverse")
>>> .
>>> .
>>> m = matrix(rnorm(100), 10)
>>> dend1 = as.dendrogram(hclust(dist(m)))
>>> dend1 = adjust_dend_by_x(dend1, unit(1:10, "cm"))
>>> grid.dendrogram(dend1, test = TRUE)
>>> .
>>> dl = cut_dendrogram(dend1, k = 3)
>>> grid.dendrogram(dl$upper, test = TRUE)
>>> .
>>> .
>>> m1 = matrix(rnorm(100), nr = 10)
>>> m2 = matrix(rnorm(80), nr = 8)
>>> m3 = matrix(rnorm(50), nr = 5)
>>> dend1 = as.dendrogram(hclust(dist(m1)))
>>> dend2 = as.dendrogram(hclust(dist(m2)))
>>> dend3 = as.dendrogram(hclust(dist(m3)))
>>> dend_p = as.dendrogram(hclust(dist(rbind(colMeans(m1), colMeans(m2), colMeans(m3)))))
>>> dend_m = merge_dendrogram(dend_p, list(dend1, dend2, dend3))
>>> grid.dendrogram(dend_m, test = T)
>>> .
>>> dend_m = merge_dendrogram(dend_p, list(dend1, dend2, dend3), only_parent = TRUE)
>>> grid.dendrogram(dend_m, test = T)
>>> .
>>> require(dendextend)
>>> dend1 = color_branches(dend1, k = 1, col = "red")
>>> dend2 = color_branches(dend2, k = 1, col = "blue")
>>> dend3 = color_branches(dend3, k = 1, col = "green")
>>> dend_p = color_branches(dend_p, k = 1, col = "orange")
>>> dend_m = merge_dendrogram(dend_p, list(dend1, dend2, dend3))
>>> grid.dendrogram(dend_m, test = T)
>>> .
>>> .
>>> m = matrix(rnorm(120), nc = 12)
>>> colnames(m) = letters[1:12]
>>> fa = rep(c("a", "b", "c"), times = c(2, 4, 6))
>>> dend = cluster_within_group(m, fa)
>>> grid.dendrogram(dend, test = TRUE)
>>> .
>>> .
>>> # stack overflow problem
>>> m = matrix(1, nrow = 1000, ncol = 10)
>>> m[1, 2] = 2
>>> dend = as.dendrogram(hclust(dist(m)))
>>> grid.dendrogram(dend, test = T)
>> Error: C stack usage 7969380 is too close to the limit
>> Execution halted
>> autopkgtest [20:30:07]: test run-unit-test: -----------------------]
>>
>>
>> Any idea how to fix this?
>>
>> Kind regards
>>
>> Andreas.
>>
>>
>> --
>> http://fam-tille.de
>>
>>
Reply to: