Skip to content

Commit d921f33

Browse files
authored
Merge pull request #12789 from pikinier20/scaladoc-script-tests
Scaladoc: Add scaladoc binary test
2 parents 4aa7f90 + 2ae2f64 commit d921f33

File tree

7 files changed

+41
-29
lines changed

7 files changed

+41
-29
lines changed

project/Build.scala

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1233,7 +1233,7 @@ object Build {
12331233
libraryDependencies += ("org.scala-js" %%% "scalajs-dom" % "1.1.0").cross(CrossVersion.for3Use2_13)
12341234
)
12351235

1236-
def generateDocumentation(targets: Seq[String], name: String, outDir: String, ref: String, params: Seq[String] = Nil, usingScript: Boolean = true) =
1236+
def generateDocumentation(targets: Seq[String], name: String, outDir: String, ref: String, params: Seq[String] = Nil) =
12371237
Def.taskDyn {
12381238
val distLocation = (dist / pack).value
12391239
val projectVersion = version.value
@@ -1262,20 +1262,10 @@ object Build {
12621262
s"-source-links:github://lampepfl/dotty/$referenceVersion",
12631263
) ++ scalacOptionsDocSettings ++ revision ++ params ++ targets
12641264
import _root_.scala.sys.process._
1265-
if (usingScript)
1266-
Def.task((s"$distLocation/bin/scaladoc" +: cmd).!)
1267-
else {
1268-
val escapedCmd = cmd.map(arg => if(arg.contains(" ")) s""""$arg"""" else arg)
1269-
Def.task {
1270-
try {
1271-
(Compile / run).toTask(escapedCmd.mkString(" ", " ", "")).value
1272-
0
1273-
} catch {
1274-
case _ : Throwable => 1
1275-
}
1276-
}
1265+
val escapedCmd = cmd.map(arg => if(arg.contains(" ")) s""""$arg"""" else arg)
1266+
Def.task {
1267+
(Compile / run).toTask(escapedCmd.mkString(" ", " ", "")).value
12771268
}
1278-
12791269
}
12801270

12811271
val SourceLinksIntegrationTest = config("sourceLinksIntegrationTest") extend Test
@@ -1322,7 +1312,7 @@ object Build {
13221312
generateSelfDocumentation := Def.taskDyn {
13231313
generateDocumentation(
13241314
(Compile / classDirectory).value.getAbsolutePath :: Nil,
1325-
"scaladoc", "scaladoc/output/self", VersionUtil.gitHash
1315+
"scaladoc", "scaladoc/output/self", VersionUtil.gitHash, Seq("-usejavacp")
13261316
)
13271317
}.value,
13281318
generateScalaDocumentation := Def.inputTaskDyn {
@@ -1363,16 +1353,16 @@ object Build {
13631353
s"-source-links:docs=github://lampepfl/dotty/master#docs",
13641354
"-doc-root-content", docRootFile.toString,
13651355
"-Ydocument-synthetic-types"
1366-
), usingScript = false
1367-
))
1356+
)))
13681357
}.evaluated,
13691358

13701359
generateTestcasesDocumentation := Def.taskDyn {
13711360
generateDocumentation(
13721361
(Test / Build.testcasesOutputDir).value,
13731362
"scaladoc testcases",
13741363
"scaladoc/output/testcases",
1375-
"master"
1364+
"master",
1365+
Seq("-usejavacp")
13761366
)
13771367
}.value,
13781368

project/scripts/cmdTests

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,28 @@ echo "testing -Ythrough-tasty"
6161
clear_out "$OUT"
6262
"$SBT" ";scalac -Ythrough-tasty $SOURCE"
6363

64+
echo "testing scaladoc script"
65+
clear_out "$OUT"
66+
clear_out "$OUT1"
67+
"$SBT" "scaladoc/generateTestcasesDocumentation" > "$tmp" 2>&1 || echo "generated testcases project with sbt"
68+
dist/target/pack/bin/scaladoc \
69+
-d "$OUT1" \
70+
-project "scaladoc testcases" \
71+
-source-links:out/bootstrap/stdlib-bootstrapped/scala-3.0.2-RC1-bin-SNAPSHOT-nonbootstrapped/src_managed/main/scala-library-src=github://scala/scala/v2.13.6#src/library \
72+
-source-links:out/bootstrap/stdlib-bootstrapped/scala-3.0.2-RC1-bin-SNAPSHOT-nonbootstrapped/src_managed/main/dotty-library-src=github://lampepfl/dotty/3.0.0#library/src \
73+
-source-links:github://lampepfl/dotty/3.0.0 \
74+
"-external-mappings:.*scala.*::scaladoc3::http://dotty.epfl.ch/api/,.*java.*::javadoc::https://docs.oracle.com/javase/8/docs/api/" \
75+
"-skip-by-regex:.+\.internal($|\..+)" \
76+
"-skip-by-regex:.+\.impl($|\..+)" \
77+
-project-logo docs/logo.svg \
78+
-social-links:github::https://github.com/lampepfl/dotty,gitter::https://gitter.im/scala/scala,twitter::https://twitter.com/scala_lang \
79+
"-skip-by-id:scala.runtime.stdLibPatches" \
80+
"-skip-by-id:scala.runtime.MatchCase" \
81+
-project-footer "Copyright (c) 2002-2021, LAMP/EPFL" \
82+
-author -groups -revision master -project-version 3.0.2-RC1-bin-SNAPSHOT \
83+
out/bootstrap/scaladoc-testcases/scala-3.0.2-RC1-bin-SNAPSHOT-nonbootstrapped/classes > "$tmp" 2>&1 || echo "generated testcases project with scripts"
84+
diff -rq "$OUT1" "scaladoc/output/testcases"
85+
6486
## Disabled because of flakeyness, should be changed to not depend on sbt
6587
# echo "running Vulpix meta test"
6688
# tmp=$(mktemp)

scaladoc-testcases/src/tests/snippetCompilerTests.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package tests
22
package snippetCompilerTests
33

44
/**
5-
* ```scala sc:compile
5+
* ```scala sc:fail
66
* //{
77
* import scala.collection.Seq
88
* //}
@@ -34,7 +34,7 @@ package snippetCompilerTests
3434
* a
3535
* ```
3636
*
37-
* ```scala sc:fail
37+
* ```scala sc:compile
3838
* def a = 2
3939
* ```
4040
*
@@ -48,7 +48,7 @@ class A {
4848
}
4949

5050
/**
51-
* ```scala sc:compile
51+
* ```scala sc:fail
5252
* val c: Int = 4.5
5353
* ```
5454
*/
@@ -58,7 +58,7 @@ trait Quotes {
5858
val reflect: reflectModule = ???
5959
trait reflectModule { self: reflect.type =>
6060
/**
61-
* ```scala sc:compile
61+
* ```scala sc:fail
6262
* 2 + List()
6363
* ```
6464
*

scaladoc-testcases/src/tests/snippetTestcase1.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ class SnippetTestcase1:
44
/**
55
* SNIPPET(OUTERLINEOFFSET:8,OUTERCOLUMNOFFSET:6,INNERLINEOFFSET:3,INNERCOLUMNOFFSET:2)
66
* ERROR(LINE:8,COLUMN:8)
7-
* ```scala sc:compile
7+
* ```scala sc:fail
88
* 2 + List()
99
* ```
1010
*

scaladoc-testcases/src/tests/snippetTestcase2.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ trait Quotes2[A] {
99
/**
1010
* SNIPPET(OUTERLINEOFFSET:13,OUTERCOLUMNOFFSET:10,INNERLINEOFFSET:6,INNERCOLUMNOFFSET:6)
1111
* ERROR(LINE:13,COLUMN:12)
12-
* ```scala sc:compile
12+
* ```scala sc:fail
1313
* 2 + List()
1414
* ```
1515
*
@@ -21,7 +21,7 @@ trait Quotes2[A] {
2121
/**
2222
* SNIPPET(OUTERLINEOFFSET:25,OUTERCOLUMNOFFSET:10,INNERLINEOFFSET:7,INNERCOLUMNOFFSET:6)
2323
* ERROR(LINE:25,COLUMN:12)
24-
* ```scala sc:compile
24+
* ```scala sc:fail
2525
* 2 + List()
2626
* ```
2727
*
@@ -35,7 +35,7 @@ trait Quotes2[A] {
3535
/**
3636
* SNIPPET(OUTERLINEOFFSET:39,OUTERCOLUMNOFFSET:10,INNERLINEOFFSET:5,INNERCOLUMNOFFSET:6)
3737
* ERROR(LINE:39,COLUMN:12)
38-
* ```scala sc:compile
38+
* ```scala sc:fail
3939
* 2 + List()
4040
* ```
4141
*
@@ -47,7 +47,7 @@ trait Quotes2[A] {
4747
/**
4848
* SNIPPET(OUTERLINEOFFSET:51,OUTERCOLUMNOFFSET:10,INNERLINEOFFSET:6,INNERCOLUMNOFFSET:6)
4949
* ERROR(LINE:51,COLUMN:12)
50-
* ```scala sc:compile
50+
* ```scala sc:fail
5151
* 2 + List()
5252
* ```
5353
*

scaladoc/src/dotty/tools/scaladoc/renderers/DotDiagramBuilder.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ object DotDiagramBuilder:
1515

1616
val vWithId = diagram.verteciesWithId
1717
val sealedNodes = diagram.sealedNodes
18-
val vertecies = vWithId.map { (vertex, id) =>
18+
val vertecies = vWithId.toList.sortBy((_, id) => id).map { (vertex, id) =>
1919
s"""node${id} [id=node${id}, label="${getHtmlLabel(vertex, renderer, sealedNodes)}", style="${getStyle(vertex.kind)}"];\n"""
2020
}.mkString
2121

scaladoc/src/dotty/tools/scaladoc/tasty/ClassLikeSupport.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ trait ClassLikeSupport:
9494
)
9595

9696
if signatureOnly then baseMember else baseMember.copy(
97-
members = classDef.extractPatchedMembers,
97+
members = classDef.extractPatchedMembers.sortBy(m => (m.name, m.kind.name)),
9898
directParents = classDef.getParentsAsLinkToTypes,
9999
parents = supertypes,
100100
companion = classDef.getCompanion

0 commit comments

Comments
 (0)