2222import com .google .devtools .build .lib .analysis .ProjectResolutionException ;
2323import com .google .devtools .build .lib .analysis .util .BuildViewTestCase ;
2424import com .google .devtools .build .lib .cmdline .Label ;
25+ import org .junit .Before ;
2526import org .junit .Test ;
2627import org .junit .runner .RunWith ;
2728import org .junit .runners .JUnit4 ;
3536 */
3637@ RunWith (JUnit4 .class )
3738public class ProjectResolutionTest extends BuildViewTestCase {
39+ @ Before
40+ public void setUp () throws Exception {
41+ setBuildLanguageOptions ("--experimental_enable_scl_dialect=true" );
42+ writeProjectSclDefinition ("test/project_proto.scl" );
43+ scratch .file ("test/BUILD" );
44+ }
45+
3846 @ Test
3947 public void buildWithNoProjectFiles () throws Exception {
4048 scratch .file ("pkg/BUILD" , "genrule(name='f', cmd = '', srcs=[], outs=['a.out'])" );
@@ -51,7 +59,12 @@ public void buildWithNoProjectFiles() throws Exception {
5159 @ Test
5260 public void buildWithOneProjectFile () throws Exception {
5361 scratch .file ("pkg/BUILD" , "genrule(name='f', cmd = '', srcs=[], outs=['a.out'])" );
54- scratch .file ("pkg/" + PROJECT_FILE_NAME , "project = {}" );
62+ scratch .file (
63+ "pkg/" + PROJECT_FILE_NAME ,
64+ """
65+ load("//test:project_proto.scl", "project_pb2")
66+ project = project_pb2.Project.create()
67+ """ );
5568
5669 var projectFiles =
5770 Project .getProjectFiles (
@@ -64,8 +77,18 @@ public void buildWithOneProjectFile() throws Exception {
6477 public void buildWithTwoProjectFiles () throws Exception {
6578 scratch .file ("foo/bar/BUILD" , "genrule(name='f', cmd = '', srcs=[], outs=['a.out'])" );
6679 scratch .file ("foo/BUILD" );
67- scratch .file ("foo/" + PROJECT_FILE_NAME , "project = {}" );
68- scratch .file ("foo/bar/" + PROJECT_FILE_NAME , "project = {}" );
80+ scratch .file (
81+ "foo/" + PROJECT_FILE_NAME ,
82+ """
83+ load("//test:project_proto.scl", "project_pb2")
84+ project = project_pb2.Project.create()
85+ """ );
86+ scratch .file (
87+ "foo/bar/" + PROJECT_FILE_NAME ,
88+ """
89+ load("//test:project_proto.scl", "project_pb2")
90+ project = project_pb2.Project.create()
91+ """ );
6992
7093 var projectFiles =
7194 Project .getProjectFiles (
@@ -79,7 +102,12 @@ public void buildWithTwoProjectFiles() throws Exception {
79102 public void twoTargetsSameProjectFile () throws Exception {
80103 scratch .file ("foo/bar/BUILD" , "genrule(name='child', cmd = '', srcs=[], outs=['c.out'])" );
81104 scratch .file ("foo/BUILD" , "genrule(name='parent', cmd = '', srcs=[], outs=['p.out'])" );
82- scratch .file ("foo/" + PROJECT_FILE_NAME , "project = {}" );
105+ scratch .file (
106+ "foo/" + PROJECT_FILE_NAME ,
107+ """
108+ load("//test:project_proto.scl", "project_pb2")
109+ project = project_pb2.Project.create()
110+ """ );
83111
84112 var projectFiles =
85113 Project .getProjectFiles (
@@ -95,8 +123,18 @@ public void twoTargetsSameProjectFile() throws Exception {
95123 public void twoTargetsDifferentProjectFiles () throws Exception {
96124 scratch .file ("foo/BUILD" , "genrule(name='f', cmd = '', srcs=[], outs=['f.out'])" );
97125 scratch .file ("bar/BUILD" , "genrule(name='g', cmd = '', srcs=[], outs=['g.out'])" );
98- scratch .file ("foo/" + PROJECT_FILE_NAME , "project = {}" );
99- scratch .file ("bar/" + PROJECT_FILE_NAME , "project = {}" );
126+ scratch .file (
127+ "foo/" + PROJECT_FILE_NAME ,
128+ """
129+ load("//test:project_proto.scl", "project_pb2")
130+ project = project_pb2.Project.create()
131+ """ );
132+ scratch .file (
133+ "bar/" + PROJECT_FILE_NAME ,
134+ """
135+ load("//test:project_proto.scl", "project_pb2")
136+ project = project_pb2.Project.create()
137+ """ );
100138
101139 var projectFiles =
102140 Project .getProjectFiles (
@@ -120,7 +158,12 @@ public void twoTargetsDifferentProjectFiles() throws Exception {
120158 public void twoTargetsOnlyOneHasProjectFile () throws Exception {
121159 scratch .file ("foo/BUILD" , "genrule(name='f', cmd = '', srcs=[], outs=['f.out'])" );
122160 scratch .file ("bar/BUILD" , "genrule(name='g', cmd = '', srcs=[], outs=['g.out'])" );
123- scratch .file ("foo/" + PROJECT_FILE_NAME , "project = {}" );
161+ scratch .file (
162+ "foo/" + PROJECT_FILE_NAME ,
163+ """
164+ load("//test:project_proto.scl", "project_pb2")
165+ project = project_pb2.Project.create()
166+ """ );
124167
125168 var projectFiles =
126169 Project .getProjectFiles (
@@ -141,10 +184,20 @@ public void twoTargetsOnlyOneHasProjectFile() throws Exception {
141184 @ Test
142185 public void innermostPackageIsAParentDirectory () throws Exception {
143186 scratch .file ("pkg/BUILD" , "genrule(name='f', cmd = '', srcs=[], outs=['a.out'])" );
144- scratch .file ("pkg/" + PROJECT_FILE_NAME , "project = {}" );
187+ scratch .file (
188+ "pkg/" + PROJECT_FILE_NAME ,
189+ """
190+ load("//test:project_proto.scl", "project_pb2")
191+ project = project_pb2.Project.create()
192+ """ );
145193 scratch .file ("pkg/subdir/not_a_build_file" );
146194 // Doesn't count because it's not colocated with a BUILD file:
147- scratch .file ("pkg/subdir" + PROJECT_FILE_NAME , "project = {}" );
195+ scratch .file (
196+ "pkg/subdir/" + PROJECT_FILE_NAME ,
197+ """
198+ load("//test:project_proto.scl", "project_pb2")
199+ project = project_pb2.Project.create()
200+ """ );
148201
149202 var projectFiles =
150203 Project .getProjectFiles (
@@ -166,7 +219,12 @@ public void aliasProjectFile() throws Exception {
166219 }
167220 """ );
168221 scratch .file ("canonical/BUILD" );
169- scratch .file ("canonical/PROJECT.scl" , "project = {}" );
222+ scratch .file (
223+ "canonical/" + PROJECT_FILE_NAME ,
224+ """
225+ load("//test:project_proto.scl", "project_pb2")
226+ project = project_pb2.Project.create()
227+ """ );
170228
171229 var projectFiles =
172230 Project .getProjectFiles (
@@ -299,7 +357,12 @@ public void aliasToAlias() throws Exception {
299357 }
300358 """ );
301359 scratch .file ("canonical/BUILD" );
302- scratch .file ("canonical/PROJECT.scl" , "project = {}" );
360+ scratch .file (
361+ "canonical/" + PROJECT_FILE_NAME ,
362+ """
363+ load("//test:project_proto.scl", "project_pb2")
364+ project = project_pb2.Project.create()
365+ """ );
303366
304367 var projectFiles =
305368 Project .getProjectFiles (
@@ -327,7 +390,12 @@ public void sameProjectFileAfterAliasResolution() throws Exception {
327390 }
328391 """ );
329392 scratch .file ("canonical/BUILD" );
330- scratch .file ("canonical/PROJECT.scl" , "project = {}" );
393+ scratch .file (
394+ "canonical/" + PROJECT_FILE_NAME ,
395+ """
396+ load("//test:project_proto.scl", "project_pb2")
397+ project = project_pb2.Project.create()
398+ """ );
331399
332400 var projectFiles =
333401 Project .getProjectFiles (
@@ -357,9 +425,19 @@ public void differentProjectFilesAfterAliasResolution() throws Exception {
357425 }
358426 """ );
359427 scratch .file ("canonical1/BUILD" );
360- scratch .file ("canonical1/PROJECT.scl" , "project = {}" );
428+ scratch .file (
429+ "canonical1/" + PROJECT_FILE_NAME ,
430+ """
431+ load("//test:project_proto.scl", "project_pb2")
432+ project = project_pb2.Project.create()
433+ """ );
361434 scratch .file ("canonical2/BUILD" );
362- scratch .file ("canonical2/PROJECT.scl" , "project = {}" );
435+ scratch .file (
436+ "canonical2/" + PROJECT_FILE_NAME ,
437+ """
438+ load("//test:project_proto.scl", "project_pb2")
439+ project = project_pb2.Project.create()
440+ """ );
363441
364442 var projectFiles =
365443 Project .getProjectFiles (
0 commit comments