lucy-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From nwelln...@apache.org
Subject [lucy-commits] [1/4] git commit: refs/heads/master - Check for class/parcel include mismatch
Date Mon, 01 Jul 2013 18:48:06 GMT
Updated Branches:
  refs/heads/master acc7158f6 -> 146a6860d


Check for class/parcel include mismatch


Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/23857d20
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/23857d20
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/23857d20

Branch: refs/heads/master
Commit: 23857d20c5cc5c06ef6a6d2a44feb9ce1ab32331
Parents: acc7158
Author: Nick Wellnhofer <wellnhofer@aevum.de>
Authored: Mon Jul 1 00:39:44 2013 +0200
Committer: Nick Wellnhofer <wellnhofer@aevum.de>
Committed: Mon Jul 1 20:41:24 2013 +0200

----------------------------------------------------------------------
 clownfish/compiler/c/t/cfbase/Animal.cfh        |  19 +++
 clownfish/compiler/c/t/cfbase/Animal.cfp        |   4 +
 clownfish/compiler/c/t/cfbase/Animal/Dog.cfh    |  28 ++++
 clownfish/compiler/c/t/cfbase/Animal/Util.cfh   |  23 ++++
 .../compiler/c/t/cfext/Animal/Rottweiler.cfh    |   2 +-
 .../compiler/c/t/cfext/AnimalExtension.cfp      |   5 +
 clownfish/compiler/c/t/cfsource/Animal.cfh      |  19 ---
 clownfish/compiler/c/t/cfsource/Animal.cfp      |   4 -
 clownfish/compiler/c/t/cfsource/Animal/Dog.cfh  |  28 ----
 clownfish/compiler/c/t/cfsource/Animal/Util.cfh |  23 ----
 clownfish/compiler/perl/t/403-parcel.t          |   2 +-
 clownfish/compiler/perl/t/500-hierarchy.t       |   8 +-
 clownfish/compiler/perl/t/501-include_dir.t     |  98 +++-----------
 clownfish/compiler/perl/t/502-clash.t           | 129 +++++++++++++++++++
 clownfish/compiler/perl/t/cfbase/Animal.cfh     |  19 +++
 clownfish/compiler/perl/t/cfbase/Animal.cfp     |   4 +
 clownfish/compiler/perl/t/cfbase/Animal/Dog.cfh |  28 ++++
 .../compiler/perl/t/cfbase/Animal/Util.cfh      |  23 ++++
 clownfish/compiler/perl/t/cfclash/bar/Bar.cfh   |  25 ++++
 clownfish/compiler/perl/t/cfclash/bar/Bar.cfp   |   4 +
 clownfish/compiler/perl/t/cfclash/bar/Baz.cfh   |  25 ++++
 clownfish/compiler/perl/t/cfclash/foo/Foo.cfh   |  25 ++++
 clownfish/compiler/perl/t/cfclash/foo/Foo.cfp   |   4 +
 .../compiler/perl/t/cfext/Animal/Rottweiler.cfh |   2 +-
 .../compiler/perl/t/cfext/AnimalExtension.cfp   |   5 +
 clownfish/compiler/perl/t/cfsource/Animal.cfh   |  19 ---
 clownfish/compiler/perl/t/cfsource/Animal.cfp   |   4 -
 .../compiler/perl/t/cfsource/Animal/Dog.cfh     |  28 ----
 .../compiler/perl/t/cfsource/Animal/Util.cfh    |  23 ----
 clownfish/compiler/src/CFCClass.c               |  15 ++-
 clownfish/compiler/src/CFCTestHierarchy.c       |  14 +-
 clownfish/compiler/src/CFCTestParcel.c          |   2 +-
 32 files changed, 417 insertions(+), 244 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/c/t/cfbase/Animal.cfh
----------------------------------------------------------------------
diff --git a/clownfish/compiler/c/t/cfbase/Animal.cfh b/clownfish/compiler/c/t/cfbase/Animal.cfh
new file mode 100644
index 0000000..a4d689a
--- /dev/null
+++ b/clownfish/compiler/c/t/cfbase/Animal.cfh
@@ -0,0 +1,19 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+parcel Animal;
+
+abstract class Animal { }

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/c/t/cfbase/Animal.cfp
----------------------------------------------------------------------
diff --git a/clownfish/compiler/c/t/cfbase/Animal.cfp b/clownfish/compiler/c/t/cfbase/Animal.cfp
new file mode 100644
index 0000000..e2b5ab5
--- /dev/null
+++ b/clownfish/compiler/c/t/cfbase/Animal.cfp
@@ -0,0 +1,4 @@
+{
+    "name": "Animal",
+    "version": "v0.1.0"
+}

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/c/t/cfbase/Animal/Dog.cfh
----------------------------------------------------------------------
diff --git a/clownfish/compiler/c/t/cfbase/Animal/Dog.cfh b/clownfish/compiler/c/t/cfbase/Animal/Dog.cfh
new file mode 100644
index 0000000..6d54baa
--- /dev/null
+++ b/clownfish/compiler/c/t/cfbase/Animal/Dog.cfh
@@ -0,0 +1,28 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+parcel Animal;
+
+class Animal::Dog inherits Animal {
+    public inert incremented Dog*
+    new();
+
+    public inert Dog*
+    init(Dog *self);
+
+    public void
+    Bark(Dog *self);
+}

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/c/t/cfbase/Animal/Util.cfh
----------------------------------------------------------------------
diff --git a/clownfish/compiler/c/t/cfbase/Animal/Util.cfh b/clownfish/compiler/c/t/cfbase/Animal/Util.cfh
new file mode 100644
index 0000000..f5688a5
--- /dev/null
+++ b/clownfish/compiler/c/t/cfbase/Animal/Util.cfh
@@ -0,0 +1,23 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+parcel Animal;
+
+inert class Animal::Util {
+    inert void
+    groom(Animal *animal);
+}
+

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/c/t/cfext/Animal/Rottweiler.cfh
----------------------------------------------------------------------
diff --git a/clownfish/compiler/c/t/cfext/Animal/Rottweiler.cfh b/clownfish/compiler/c/t/cfext/Animal/Rottweiler.cfh
index 8de5e24..9e78b58 100644
--- a/clownfish/compiler/c/t/cfext/Animal/Rottweiler.cfh
+++ b/clownfish/compiler/c/t/cfext/Animal/Rottweiler.cfh
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-parcel Animal;
+parcel AnimalExtension;
 
 class Animal::Rottweiler inherits Animal::Dog {
     public inert incremented Rottweiler*

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/c/t/cfext/AnimalExtension.cfp
----------------------------------------------------------------------
diff --git a/clownfish/compiler/c/t/cfext/AnimalExtension.cfp b/clownfish/compiler/c/t/cfext/AnimalExtension.cfp
new file mode 100644
index 0000000..76f31d3
--- /dev/null
+++ b/clownfish/compiler/c/t/cfext/AnimalExtension.cfp
@@ -0,0 +1,5 @@
+{
+    "name": "AnimalExtension",
+    "nickname": "AniExt",
+    "version": "v0.1.0"
+}

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/c/t/cfsource/Animal.cfh
----------------------------------------------------------------------
diff --git a/clownfish/compiler/c/t/cfsource/Animal.cfh b/clownfish/compiler/c/t/cfsource/Animal.cfh
deleted file mode 100644
index a4d689a..0000000
--- a/clownfish/compiler/c/t/cfsource/Animal.cfh
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-parcel Animal;
-
-abstract class Animal { }

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/c/t/cfsource/Animal.cfp
----------------------------------------------------------------------
diff --git a/clownfish/compiler/c/t/cfsource/Animal.cfp b/clownfish/compiler/c/t/cfsource/Animal.cfp
deleted file mode 100644
index e2b5ab5..0000000
--- a/clownfish/compiler/c/t/cfsource/Animal.cfp
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "name": "Animal",
-    "version": "v0.1.0"
-}

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/c/t/cfsource/Animal/Dog.cfh
----------------------------------------------------------------------
diff --git a/clownfish/compiler/c/t/cfsource/Animal/Dog.cfh b/clownfish/compiler/c/t/cfsource/Animal/Dog.cfh
deleted file mode 100644
index 6d54baa..0000000
--- a/clownfish/compiler/c/t/cfsource/Animal/Dog.cfh
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-parcel Animal;
-
-class Animal::Dog inherits Animal {
-    public inert incremented Dog*
-    new();
-
-    public inert Dog*
-    init(Dog *self);
-
-    public void
-    Bark(Dog *self);
-}

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/c/t/cfsource/Animal/Util.cfh
----------------------------------------------------------------------
diff --git a/clownfish/compiler/c/t/cfsource/Animal/Util.cfh b/clownfish/compiler/c/t/cfsource/Animal/Util.cfh
deleted file mode 100644
index f5688a5..0000000
--- a/clownfish/compiler/c/t/cfsource/Animal/Util.cfh
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-parcel Animal;
-
-inert class Animal::Util {
-    inert void
-    groom(Animal *animal);
-}
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/perl/t/403-parcel.t
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/403-parcel.t b/clownfish/compiler/perl/t/403-parcel.t
index 462f7c3..de887fd 100644
--- a/clownfish/compiler/perl/t/403-parcel.t
+++ b/clownfish/compiler/perl/t/403-parcel.t
@@ -66,7 +66,7 @@ isa_ok(
 
 isa_ok(
     Clownfish::CFC::Model::Parcel->new_from_file(
-        path => catfile(qw( t cfsource Animal.cfp )),
+        path => catfile(qw( t cfbase Animal.cfp )),
     ),
     "Clownfish::CFC::Model::Parcel",
     "new_from_file"

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/perl/t/500-hierarchy.t
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/500-hierarchy.t b/clownfish/compiler/perl/t/500-hierarchy.t
index 0f7f82e..4866731 100644
--- a/clownfish/compiler/perl/t/500-hierarchy.t
+++ b/clownfish/compiler/perl/t/500-hierarchy.t
@@ -24,7 +24,7 @@ use File::Spec::Functions qw( catdir catfile splitpath );
 use Fcntl;
 use File::Path qw( rmtree mkpath );
 
-my $source = catdir(qw( t cfsource ));
+my $base_dir = catdir(qw( t cfbase ));
 my %args = (
     dest => catdir(qw( t cfdest )),
 );
@@ -48,8 +48,8 @@ is( $hierarchy->get_include_dest, $inc_dest, "get_include_dest" );
 my $src_dest = catfile( $args{dest}, "source" );
 is( $hierarchy->get_source_dest, $src_dest, "get_source_dest" );
 
-$hierarchy->add_source_dir($source);
-is_deeply( $hierarchy->get_source_dirs, [ $source ], "get_source_dirs" );
+$hierarchy->add_source_dir($base_dir);
+is_deeply( $hierarchy->get_source_dirs, [ $base_dir ], "get_source_dirs" );
 
 $hierarchy->build;
 
@@ -89,7 +89,7 @@ for my $file (@files) {
         or die "utime failed for '$h_path': $!";
 }
 
-my $path_to_animal_cf = $animal->cfh_path( $source );
+my $path_to_animal_cf = $animal->cfh_path( $base_dir );
 utime( undef, undef, $path_to_animal_cf )
     or die "utime for '$path_to_animal_cf' failed";    # touch
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/perl/t/501-include_dir.t
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/501-include_dir.t b/clownfish/compiler/perl/t/501-include_dir.t
index 45e5060..00b735c 100644
--- a/clownfish/compiler/perl/t/501-include_dir.t
+++ b/clownfish/compiler/perl/t/501-include_dir.t
@@ -16,31 +16,27 @@
 use strict;
 use warnings;
 
-use Test::More tests => 25;
+use Test::More tests => 21;
 
 use Clownfish::CFC::Model::Hierarchy;
-use Clownfish::CFC::Util qw( a_isa_b );
 use File::Spec::Functions qw( catdir catfile splitpath );
-use Fcntl;
 use File::Path qw( rmtree );
 
-my $source = catdir(qw( t cfsource ));
-my $ext    = catdir(qw( t cfext ));
-my $dest   = catdir(qw( t cfdest ));
-
-my $class_clash = catdir(qw( t cfclash class ));
-my $file_clash  = catdir(qw( t cfclash file ));
+my $base_dir = catdir(qw( t cfbase ));
+my $ext_dir  = catdir(qw( t cfext ));
+my $dest_dir = catdir(qw( t cfdest ));
 
 # One source, one include
 
 {
-    my $hierarchy = Clownfish::CFC::Model::Hierarchy->new(dest => $dest);
+    my $hierarchy = Clownfish::CFC::Model::Hierarchy->new(dest => $dest_dir);
 
-    $hierarchy->add_source_dir($ext);
-    is_deeply( $hierarchy->get_source_dirs, [ $ext ], "get_source_dirs" );
+    $hierarchy->add_source_dir($ext_dir);
+    is_deeply( $hierarchy->get_source_dirs, [ $ext_dir ], "get_source_dirs" );
 
-    $hierarchy->add_include_dir($source);
-    is_deeply( $hierarchy->get_include_dirs, [ $source ], "get_include_dirs" );
+    $hierarchy->add_include_dir($base_dir);
+    is_deeply( $hierarchy->get_include_dirs, [ $base_dir ],
+               "get_include_dirs" );
 
     $hierarchy->build;
 
@@ -48,7 +44,8 @@ my $file_clash  = catdir(qw( t cfclash file ));
     is( scalar @$classes, 4, "all classes" );
     my $num_included = 0;
     for my $class (@$classes) {
-        die "not a Class" unless isa_ok( $class, "Clownfish::CFC::Model::Class" );
+        die "not a Class"
+            unless isa_ok( $class, "Clownfish::CFC::Model::Class" );
 
         my $expect;
 
@@ -75,11 +72,12 @@ my $file_clash  = catdir(qw( t cfclash file ));
 # Two sources
 
 {
-    my $hierarchy = Clownfish::CFC::Model::Hierarchy->new(dest => $dest);
+    my $hierarchy = Clownfish::CFC::Model::Hierarchy->new(dest => $dest_dir);
 
-    $hierarchy->add_source_dir($source);
-    $hierarchy->add_source_dir($ext);
-    is_deeply( $hierarchy->get_source_dirs, [ $source, $ext ], "get_source_dirs" );
+    $hierarchy->add_source_dir($base_dir);
+    $hierarchy->add_source_dir($ext_dir);
+    is_deeply( $hierarchy->get_source_dirs, [ $base_dir, $ext_dir ],
+               "get_source_dirs" );
     is_deeply( $hierarchy->get_include_dirs, [], "get_include_dirs" );
 
     $hierarchy->build;
@@ -99,66 +97,6 @@ my $file_clash  = catdir(qw( t cfclash file ));
     Clownfish::CFC::Model::Parcel->reap_singletons();
 }
 
-# Name clashes
-
-{
-    my $hierarchy = Clownfish::CFC::Model::Hierarchy->new(dest => $dest);
-
-    $hierarchy->add_source_dir($source);
-    $hierarchy->add_source_dir($class_clash);
-
-    eval { $hierarchy->build; };
-
-    like( $@, qr/Conflict with existing class Animal::Dog/, "source/source class name clash"
);
-
-    Clownfish::CFC::Model::Class->_clear_registry();
-    Clownfish::CFC::Model::Parcel->reap_singletons();
-}
-
-{
-    my $hierarchy = Clownfish::CFC::Model::Hierarchy->new(dest => $dest);
-
-    $hierarchy->add_source_dir($source);
-    $hierarchy->add_source_dir($file_clash);
-
-    eval { $hierarchy->build; };
-
-    my $filename = catfile(qw( Animal Dog.cfh ));
-    like( $@, qr/File \Q$filename\E already registered/, "source/source filename clash" );
-
-    Clownfish::CFC::Model::Class->_clear_registry();
-    Clownfish::CFC::Model::Parcel->reap_singletons();
-}
-
-{
-    my $hierarchy = Clownfish::CFC::Model::Hierarchy->new(dest => $dest);
-
-    $hierarchy->add_source_dir($source);
-    $hierarchy->add_include_dir($class_clash);
-
-    eval { $hierarchy->build; };
-
-    like( $@, qr/Conflict with existing class Animal::Dog/, "source/include class name clash"
);
-
-    Clownfish::CFC::Model::Class->_clear_registry();
-    Clownfish::CFC::Model::Parcel->reap_singletons();
-}
-
-{
-    my $hierarchy = Clownfish::CFC::Model::Hierarchy->new(dest => $dest);
-
-    $hierarchy->add_source_dir($source);
-    $hierarchy->add_include_dir($file_clash);
-
-    $hierarchy->build;
-
-    my $classes = $hierarchy->ordered_classes;
-    is( scalar @$classes, 3, "source/include filename clash" );
-
-    Clownfish::CFC::Model::Class->_clear_registry();
-    Clownfish::CFC::Model::Parcel->reap_singletons();
-}
-
 # Clean up.
-rmtree($dest);
+rmtree($dest_dir);
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/perl/t/502-clash.t
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/502-clash.t b/clownfish/compiler/perl/t/502-clash.t
new file mode 100644
index 0000000..b095c34
--- /dev/null
+++ b/clownfish/compiler/perl/t/502-clash.t
@@ -0,0 +1,129 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+use strict;
+use warnings;
+
+use Test::More tests => 6;
+
+use Clownfish::CFC::Model::Hierarchy;
+use File::Spec::Functions qw( catdir catfile splitpath );
+use File::Path qw( rmtree );
+
+my $base_dir        = catdir(qw( t cfbase ));
+my $ext_dir         = catdir(qw( t cfext ));
+my $dest_dir        = catdir(qw( t cfdest ));
+my $class_clash_dir = catdir(qw( t cfclash class ));
+my $file_clash_dir  = catdir(qw( t cfclash file ));
+
+{
+    my $hierarchy = Clownfish::CFC::Model::Hierarchy->new(dest => $dest_dir);
+
+    $hierarchy->add_source_dir($base_dir);
+    $hierarchy->add_source_dir($class_clash_dir);
+
+    eval { $hierarchy->build; };
+
+    like( $@, qr/Conflict with existing class Animal::Dog/,
+          "source/source class name clash" );
+
+    Clownfish::CFC::Model::Class->_clear_registry();
+    Clownfish::CFC::Model::Parcel->reap_singletons();
+}
+
+{
+    my $hierarchy = Clownfish::CFC::Model::Hierarchy->new(dest => $dest_dir);
+
+    $hierarchy->add_source_dir($base_dir);
+    $hierarchy->add_source_dir($file_clash_dir);
+
+    eval { $hierarchy->build; };
+
+    my $filename = catfile(qw( Animal Dog.cfh ));
+    like( $@, qr/File \Q$filename\E already registered/,
+          "source/source filename clash" );
+
+    Clownfish::CFC::Model::Class->_clear_registry();
+    Clownfish::CFC::Model::Parcel->reap_singletons();
+}
+
+{
+    my $hierarchy = Clownfish::CFC::Model::Hierarchy->new(dest => $dest_dir);
+
+    $hierarchy->add_source_dir($base_dir);
+    $hierarchy->add_include_dir($class_clash_dir);
+
+    eval { $hierarchy->build; };
+
+    like( $@, qr/Class .* from include dir .* parcel .* from source dir/,
+          "source/include class name clash" );
+
+    Clownfish::CFC::Model::Class->_clear_registry();
+    Clownfish::CFC::Model::Parcel->reap_singletons();
+}
+
+{
+    my $hierarchy = Clownfish::CFC::Model::Hierarchy->new(dest => $dest_dir);
+
+    $hierarchy->add_source_dir($base_dir);
+    $hierarchy->add_include_dir($file_clash_dir);
+
+    $hierarchy->build;
+
+    my $classes = $hierarchy->ordered_classes;
+    is( scalar @$classes, 3, "source/include filename clash" );
+
+    Clownfish::CFC::Model::Class->_clear_registry();
+    Clownfish::CFC::Model::Parcel->reap_singletons();
+}
+
+# Parcel/class include mismatch
+
+my $foo_dir = catdir(qw( t cfclash foo ));
+my $bar_dir = catdir(qw( t cfclash bar ));
+
+{
+    my $hierarchy = Clownfish::CFC::Model::Hierarchy->new(dest => $dest_dir);
+
+    $hierarchy->add_source_dir($foo_dir);
+    $hierarchy->add_include_dir($bar_dir);
+
+    eval { $hierarchy->build; };
+
+    like( $@, qr/Class .* from include dir .* parcel .* from source dir/,
+          "included class with source parcel" );
+
+    Clownfish::CFC::Model::Class->_clear_registry();
+    Clownfish::CFC::Model::Parcel->reap_singletons();
+}
+
+{
+    my $hierarchy = Clownfish::CFC::Model::Hierarchy->new(dest => $dest_dir);
+
+    $hierarchy->add_source_dir($bar_dir);
+    $hierarchy->add_include_dir($foo_dir);
+
+    eval { $hierarchy->build; };
+
+    like( $@, qr/Class .* from source dir .* parcel .* from include dir/,
+          "source class with included parcel" );
+
+    Clownfish::CFC::Model::Class->_clear_registry();
+    Clownfish::CFC::Model::Parcel->reap_singletons();
+}
+
+# Clean up.
+rmtree($dest_dir);
+

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/perl/t/cfbase/Animal.cfh
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/cfbase/Animal.cfh b/clownfish/compiler/perl/t/cfbase/Animal.cfh
new file mode 100644
index 0000000..a4d689a
--- /dev/null
+++ b/clownfish/compiler/perl/t/cfbase/Animal.cfh
@@ -0,0 +1,19 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+parcel Animal;
+
+abstract class Animal { }

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/perl/t/cfbase/Animal.cfp
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/cfbase/Animal.cfp b/clownfish/compiler/perl/t/cfbase/Animal.cfp
new file mode 100644
index 0000000..e2b5ab5
--- /dev/null
+++ b/clownfish/compiler/perl/t/cfbase/Animal.cfp
@@ -0,0 +1,4 @@
+{
+    "name": "Animal",
+    "version": "v0.1.0"
+}

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/perl/t/cfbase/Animal/Dog.cfh
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/cfbase/Animal/Dog.cfh b/clownfish/compiler/perl/t/cfbase/Animal/Dog.cfh
new file mode 100644
index 0000000..6d54baa
--- /dev/null
+++ b/clownfish/compiler/perl/t/cfbase/Animal/Dog.cfh
@@ -0,0 +1,28 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+parcel Animal;
+
+class Animal::Dog inherits Animal {
+    public inert incremented Dog*
+    new();
+
+    public inert Dog*
+    init(Dog *self);
+
+    public void
+    Bark(Dog *self);
+}

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/perl/t/cfbase/Animal/Util.cfh
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/cfbase/Animal/Util.cfh b/clownfish/compiler/perl/t/cfbase/Animal/Util.cfh
new file mode 100644
index 0000000..f5688a5
--- /dev/null
+++ b/clownfish/compiler/perl/t/cfbase/Animal/Util.cfh
@@ -0,0 +1,23 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+parcel Animal;
+
+inert class Animal::Util {
+    inert void
+    groom(Animal *animal);
+}
+

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/perl/t/cfclash/bar/Bar.cfh
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/cfclash/bar/Bar.cfh b/clownfish/compiler/perl/t/cfclash/bar/Bar.cfh
new file mode 100644
index 0000000..89e798e
--- /dev/null
+++ b/clownfish/compiler/perl/t/cfclash/bar/Bar.cfh
@@ -0,0 +1,25 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+parcel Bar;
+
+public class Bar inherits Clownfish::Obj {
+    int var;
+
+    public void
+    Method(Bar *self);
+}
+

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/perl/t/cfclash/bar/Bar.cfp
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/cfclash/bar/Bar.cfp b/clownfish/compiler/perl/t/cfclash/bar/Bar.cfp
new file mode 100644
index 0000000..e5868f6
--- /dev/null
+++ b/clownfish/compiler/perl/t/cfclash/bar/Bar.cfp
@@ -0,0 +1,4 @@
+{
+    "name": "Bar",
+    "version": "v1.0.0"
+}

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/perl/t/cfclash/bar/Baz.cfh
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/cfclash/bar/Baz.cfh b/clownfish/compiler/perl/t/cfclash/bar/Baz.cfh
new file mode 100644
index 0000000..00e4033
--- /dev/null
+++ b/clownfish/compiler/perl/t/cfclash/bar/Baz.cfh
@@ -0,0 +1,25 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+parcel Foo;
+
+public class Baz inherits Clownfish::Obj {
+    int var;
+
+    public void
+    Method(Baz *self);
+}
+

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/perl/t/cfclash/foo/Foo.cfh
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/cfclash/foo/Foo.cfh b/clownfish/compiler/perl/t/cfclash/foo/Foo.cfh
new file mode 100644
index 0000000..b770d8a
--- /dev/null
+++ b/clownfish/compiler/perl/t/cfclash/foo/Foo.cfh
@@ -0,0 +1,25 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+parcel Foo;
+
+public class Foo inherits Clownfish::Obj {
+    int var;
+
+    public void
+    Method(Foo *self);
+}
+

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/perl/t/cfclash/foo/Foo.cfp
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/cfclash/foo/Foo.cfp b/clownfish/compiler/perl/t/cfclash/foo/Foo.cfp
new file mode 100644
index 0000000..2995169
--- /dev/null
+++ b/clownfish/compiler/perl/t/cfclash/foo/Foo.cfp
@@ -0,0 +1,4 @@
+{
+    "name": "Foo",
+    "version": "v1.0.0"
+}

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/perl/t/cfext/Animal/Rottweiler.cfh
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/cfext/Animal/Rottweiler.cfh b/clownfish/compiler/perl/t/cfext/Animal/Rottweiler.cfh
index 8de5e24..9e78b58 100644
--- a/clownfish/compiler/perl/t/cfext/Animal/Rottweiler.cfh
+++ b/clownfish/compiler/perl/t/cfext/Animal/Rottweiler.cfh
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-parcel Animal;
+parcel AnimalExtension;
 
 class Animal::Rottweiler inherits Animal::Dog {
     public inert incremented Rottweiler*

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/perl/t/cfext/AnimalExtension.cfp
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/cfext/AnimalExtension.cfp b/clownfish/compiler/perl/t/cfext/AnimalExtension.cfp
new file mode 100644
index 0000000..76f31d3
--- /dev/null
+++ b/clownfish/compiler/perl/t/cfext/AnimalExtension.cfp
@@ -0,0 +1,5 @@
+{
+    "name": "AnimalExtension",
+    "nickname": "AniExt",
+    "version": "v0.1.0"
+}

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/perl/t/cfsource/Animal.cfh
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/cfsource/Animal.cfh b/clownfish/compiler/perl/t/cfsource/Animal.cfh
deleted file mode 100644
index a4d689a..0000000
--- a/clownfish/compiler/perl/t/cfsource/Animal.cfh
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-parcel Animal;
-
-abstract class Animal { }

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/perl/t/cfsource/Animal.cfp
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/cfsource/Animal.cfp b/clownfish/compiler/perl/t/cfsource/Animal.cfp
deleted file mode 100644
index e2b5ab5..0000000
--- a/clownfish/compiler/perl/t/cfsource/Animal.cfp
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "name": "Animal",
-    "version": "v0.1.0"
-}

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/perl/t/cfsource/Animal/Dog.cfh
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/cfsource/Animal/Dog.cfh b/clownfish/compiler/perl/t/cfsource/Animal/Dog.cfh
deleted file mode 100644
index 6d54baa..0000000
--- a/clownfish/compiler/perl/t/cfsource/Animal/Dog.cfh
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-parcel Animal;
-
-class Animal::Dog inherits Animal {
-    public inert incremented Dog*
-    new();
-
-    public inert Dog*
-    init(Dog *self);
-
-    public void
-    Bark(Dog *self);
-}

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/perl/t/cfsource/Animal/Util.cfh
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/cfsource/Animal/Util.cfh b/clownfish/compiler/perl/t/cfsource/Animal/Util.cfh
deleted file mode 100644
index f5688a5..0000000
--- a/clownfish/compiler/perl/t/cfsource/Animal/Util.cfh
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-parcel Animal;
-
-inert class Animal::Util {
-    inert void
-    groom(Animal *animal);
-}
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/src/CFCClass.c
----------------------------------------------------------------------
diff --git a/clownfish/compiler/src/CFCClass.c b/clownfish/compiler/src/CFCClass.c
index ffa326b..0eda731 100644
--- a/clownfish/compiler/src/CFCClass.c
+++ b/clownfish/compiler/src/CFCClass.c
@@ -188,7 +188,20 @@ CFCClass_do_create(CFCClass *self, struct CFCParcel *parcel,
     self->is_final    = !!is_final;
     self->is_inert    = !!is_inert;
 
-    // TODO: Check that file_spec->is_included matches parcel->is_included.
+    if (file_spec && CFCFileSpec_included(file_spec)) {
+        if (!CFCParcel_included(parcel)) {
+            CFCUtil_die("Class %s from include dir found in parcel %s from"
+                        " source dir",
+                        class_name, CFCParcel_get_name(parcel));
+        }
+    }
+    else {
+        if (CFCParcel_included(parcel)) {
+            CFCUtil_die("Class %s from source dir found in parcel %s from"
+                        " include dir",
+                        class_name, CFCParcel_get_name(parcel));
+        }
+    }
 
     // Store in registry.
     S_register(self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/src/CFCTestHierarchy.c
----------------------------------------------------------------------
diff --git a/clownfish/compiler/src/CFCTestHierarchy.c b/clownfish/compiler/src/CFCTestHierarchy.c
index 7516146..c84c836 100644
--- a/clownfish/compiler/src/CFCTestHierarchy.c
+++ b/clownfish/compiler/src/CFCTestHierarchy.c
@@ -36,7 +36,7 @@
 #include "CFCTest.h"
 #include "CFCUtil.h"
 
-#define T_CFSOURCE        "t" CHY_DIR_SEP "cfsource"
+#define T_CFBASE          "t" CHY_DIR_SEP "cfbase"
 #define T_CFEXT           "t" CHY_DIR_SEP "cfext"
 #define T_CFDEST          "t" CHY_DIR_SEP "cfdest"
 #define T_CFDEST_INCLUDE  T_CFDEST CHY_DIR_SEP "include"
@@ -72,9 +72,9 @@ S_run_basic_tests(CFCTest *test) {
     STR_EQ(test, CFCHierarchy_get_source_dest(hierarchy), T_CFDEST_SOURCE,
            "get_source_dest");
 
-    CFCHierarchy_add_source_dir(hierarchy, T_CFSOURCE);
+    CFCHierarchy_add_source_dir(hierarchy, T_CFBASE);
     const char **source_dirs = CFCHierarchy_get_source_dirs(hierarchy);
-    STR_EQ(test, source_dirs[0], T_CFSOURCE, "source_dirs[0]");
+    STR_EQ(test, source_dirs[0], T_CFBASE, "source_dirs[0]");
     OK(test, source_dirs[1] == NULL, "source_dirs[1]");
 
     CFCHierarchy_build(hierarchy);
@@ -135,7 +135,7 @@ S_run_basic_tests(CFCTest *test) {
         CFCTest_set_file_times(h_path, past_time);
     }
 
-    char *cfh_path = CFCFile_cfh_path(animal, T_CFSOURCE);
+    char *cfh_path = CFCFile_cfh_path(animal, T_CFBASE);
     CFCTest_set_file_times(cfh_path, now);
     FREEMEM(cfh_path);
 
@@ -165,9 +165,9 @@ S_run_include_tests(CFCTest *test) {
     {
         CFCHierarchy *hierarchy = CFCHierarchy_new(T_CFDEST);
         CFCHierarchy_add_source_dir(hierarchy, T_CFEXT);
-        CFCHierarchy_add_include_dir(hierarchy, T_CFSOURCE);
+        CFCHierarchy_add_include_dir(hierarchy, T_CFBASE);
         const char **include_dirs = CFCHierarchy_get_include_dirs(hierarchy);
-        STR_EQ(test, include_dirs[0], T_CFSOURCE, "include_dirs[0]");
+        STR_EQ(test, include_dirs[0], T_CFBASE, "include_dirs[0]");
         OK(test, include_dirs[1] == NULL, "include_dirs[1]");
 
         CFCHierarchy_build(hierarchy);
@@ -201,7 +201,7 @@ S_run_include_tests(CFCTest *test) {
 
     {
         CFCHierarchy *hierarchy = CFCHierarchy_new(T_CFDEST);
-        CFCHierarchy_add_source_dir(hierarchy, T_CFSOURCE);
+        CFCHierarchy_add_source_dir(hierarchy, T_CFBASE);
         CFCHierarchy_add_source_dir(hierarchy, T_CFEXT);
 
         CFCHierarchy_build(hierarchy);

http://git-wip-us.apache.org/repos/asf/lucy/blob/23857d20/clownfish/compiler/src/CFCTestParcel.c
----------------------------------------------------------------------
diff --git a/clownfish/compiler/src/CFCTestParcel.c b/clownfish/compiler/src/CFCTestParcel.c
index 9c63f18..d91a271 100644
--- a/clownfish/compiler/src/CFCTestParcel.c
+++ b/clownfish/compiler/src/CFCTestParcel.c
@@ -65,7 +65,7 @@ S_run_tests(CFCTest *test) {
     }
 
     {
-        const char *path = "t" CHY_DIR_SEP "cfsource" CHY_DIR_SEP "Animal.cfp";
+        const char *path = "t" CHY_DIR_SEP "cfbase" CHY_DIR_SEP "Animal.cfp";
         CFCParcel *parcel = CFCParcel_new_from_file(path, false);
         OK(test, parcel != NULL, "new_from_file");
         CFCBase_decref((CFCBase*)parcel);


Mime
View raw message