Move C++ code generator unit tests to module
diff --git a/gen/src/mod.rs b/gen/src/mod.rs
index 77a0c65..710bca2 100644
--- a/gen/src/mod.rs
+++ b/gen/src/mod.rs
@@ -7,6 +7,9 @@
 pub(super) mod out;
 mod write;
 
+#[cfg(test)]
+mod tests;
+
 use self::error::{format_err, Error, Result};
 use crate::syntax::namespace::Namespace;
 use crate::syntax::report::Errors;
@@ -64,41 +67,3 @@
     let out = write::gen(namespace, apis, types, opt, header);
     Ok(out.content())
 }
-
-#[cfg(test)]
-mod tests {
-    use crate::gen::{generate, Opt};
-
-    const CPP_EXAMPLE: &'static str = r#"
-        #[cxx::bridge]
-        mod ffi {
-            extern "C" {
-                pub fn do_cpp_thing(foo: &str);
-            }
-        }
-        "#;
-
-    #[test]
-    fn test_cpp() {
-        let opts = Opt {
-            include: Vec::new(),
-            cxx_impl_annotations: None,
-        };
-        let output = generate(CPP_EXAMPLE, opts, false).unwrap();
-        let output = std::str::from_utf8(&output).unwrap();
-        // To avoid continual breakage we won't test every byte.
-        // Let's look for the major features.
-        assert!(output.contains("void cxxbridge03$do_cpp_thing(::rust::Str::Repr foo)"));
-    }
-
-    #[test]
-    fn test_annotation() {
-        let opts = Opt {
-            include: Vec::new(),
-            cxx_impl_annotations: Some("ANNOTATION".to_string()),
-        };
-        let output = generate(CPP_EXAMPLE, opts, false).unwrap();
-        let output = std::str::from_utf8(&output).unwrap();
-        assert!(output.contains("ANNOTATION void cxxbridge03$do_cpp_thing(::rust::Str::Repr foo)"));
-    }
-}
diff --git a/gen/src/tests.rs b/gen/src/tests.rs
new file mode 100644
index 0000000..0e7a910
--- /dev/null
+++ b/gen/src/tests.rs
@@ -0,0 +1,34 @@
+use crate::gen::{generate, Opt};
+
+const CPP_EXAMPLE: &'static str = r#"
+    #[cxx::bridge]
+    mod ffi {
+        extern "C" {
+            pub fn do_cpp_thing(foo: &str);
+        }
+    }
+    "#;
+
+#[test]
+fn test_cpp() {
+    let opts = Opt {
+        include: Vec::new(),
+        cxx_impl_annotations: None,
+    };
+    let output = generate(CPP_EXAMPLE, opts, false).unwrap();
+    let output = std::str::from_utf8(&output).unwrap();
+    // To avoid continual breakage we won't test every byte.
+    // Let's look for the major features.
+    assert!(output.contains("void cxxbridge03$do_cpp_thing(::rust::Str::Repr foo)"));
+}
+
+#[test]
+fn test_annotation() {
+    let opts = Opt {
+        include: Vec::new(),
+        cxx_impl_annotations: Some("ANNOTATION".to_string()),
+    };
+    let output = generate(CPP_EXAMPLE, opts, false).unwrap();
+    let output = std::str::from_utf8(&output).unwrap();
+    assert!(output.contains("ANNOTATION void cxxbridge03$do_cpp_thing(::rust::Str::Repr foo)"));
+}