Move tests out of stable module
In the future this will help test that stable and unstable expose the same API.
diff --git a/tests/test.rs b/tests/test.rs
new file mode 100644
index 0000000..0f81816
--- /dev/null
+++ b/tests/test.rs
@@ -0,0 +1,64 @@
+extern crate proc_macro2;
+
+use proc_macro2::{Symbol, Literal, TokenStream};
+
+#[test]
+fn symbols() {
+ assert_eq!(Symbol::from("foo").as_str(), "foo");
+ assert_eq!(Symbol::from("bar").as_str(), "bar");
+}
+
+#[test]
+fn literals() {
+ assert_eq!(Literal::from("foo").to_string(), "\"foo\"");
+ assert_eq!(Literal::from("\"").to_string(), "\"\\\"\"");
+}
+
+#[test]
+fn roundtrip() {
+ fn roundtrip(p: &str) {
+ println!("parse: {}", p);
+ let s = p.parse::<TokenStream>().unwrap().to_string();
+ println!("first: {}", s);
+ let s2 = s.to_string().parse::<TokenStream>().unwrap().to_string();
+ assert_eq!(s, s2);
+ }
+ roundtrip("a");
+ roundtrip("<<");
+ roundtrip("<<=");
+ roundtrip("
+ /// a
+ wut
+ ");
+ roundtrip("
+ 1
+ 1.0
+ 1f32
+ 2f64
+ 1usize
+ 4isize
+ 4e10
+ 1_000
+ 1_0i32
+ 8u8
+ 9
+ 0
+ 0xffffffffffffffffffffffffffffffff
+ ");
+ roundtrip("'a");
+ roundtrip("'static");
+}
+
+#[test]
+fn fail() {
+ fn fail(p: &str) {
+ if p.parse::<TokenStream>().is_ok() {
+ panic!("should have failed to parse: {}", p);
+ }
+ }
+ fail("1x");
+ fail("1u80");
+ fail("1f320");
+ fail("' static");
+ fail("'mut");
+}