@@ -41,159 +41,156 @@ macro_rules! c_fmt {
4141
4242macro_rules! assert_eq_fmt {
4343 ( $format: expr $( , $p: expr) * ) => {
44- assert_eq!( c_fmt!( $format $( , $p) * ) , * rust_fmt( $format, $( $p) ,* ) )
45- } ;
46- }
47-
48- macro_rules! c_str {
49- ( $data: literal) => {
50- concat!( $data, "\0 " ) . as_ptr( )
44+ assert_eq!(
45+ c_fmt!( $format. as_ptr( ) . cast( ) $( , $p) * ) ,
46+ * rust_fmt( $format. as_ptr( ) . cast( ) , $( $p) ,* )
47+ ) ;
5148 } ;
5249}
5350
5451#[ test]
5552fn test_plain ( ) {
5653 unsafe {
57- assert_eq_fmt ! ( c_str! ( "abc" ) ) ;
58- assert_eq_fmt ! ( c_str! ( "" ) ) ;
59- assert_eq_fmt ! ( c_str! ( "%%" ) ) ;
60- assert_eq_fmt ! ( c_str! ( "%% def" ) ) ;
61- assert_eq_fmt ! ( c_str! ( "abc %%" ) ) ;
62- assert_eq_fmt ! ( c_str! ( "abc %% def" ) ) ;
63- assert_eq_fmt ! ( c_str! ( "abc %%%% def" ) ) ;
64- assert_eq_fmt ! ( c_str! ( "%%%%%%" ) ) ;
54+ assert_eq_fmt ! ( c "abc") ;
55+ assert_eq_fmt ! ( c"" ) ;
56+ assert_eq_fmt ! ( c "%%") ;
57+ assert_eq_fmt ! ( c "%% def") ;
58+ assert_eq_fmt ! ( c "abc %%") ;
59+ assert_eq_fmt ! ( c "abc %% def") ;
60+ assert_eq_fmt ! ( c "abc %%%% def") ;
61+ assert_eq_fmt ! ( c "%%%%%%") ;
6562 }
6663}
6764
6865#[ test]
6966fn test_str ( ) {
7067 unsafe {
71- assert_eq_fmt ! ( c_str! ( "hello %s" ) , c_str! ( "world" ) ) ;
72- assert_eq_fmt ! ( c_str! ( "hello %%%s" ) , c_str! ( "world" ) ) ;
73- assert_eq_fmt ! ( c_str! ( "%10s" ) , c_str! ( "world" ) ) ;
74- assert_eq_fmt ! ( c_str! ( "%.4s" ) , c_str! ( "world" ) ) ;
75- assert_eq_fmt ! ( c_str! ( "%10.4s" ) , c_str! ( "world" ) ) ;
76- assert_eq_fmt ! ( c_str! ( "%-10.4s" ) , c_str! ( "world" ) ) ;
77- assert_eq_fmt ! ( c_str! ( "%-10s" ) , c_str! ( "world" ) ) ;
78- assert_eq_fmt ! ( c_str! ( "%s" ) , null_mut:: <c_char>( ) ) ;
68+ assert_eq_fmt ! ( c "hello %s", c "world") ;
69+ assert_eq_fmt ! ( c "hello %%%s", c "world") ;
70+ assert_eq_fmt ! ( c "%10s", c "world") ;
71+ assert_eq_fmt ! ( c "%.4s", c "world") ;
72+ assert_eq_fmt ! ( c "%10.4s", c "world") ;
73+ assert_eq_fmt ! ( c "%-10.4s", c "world") ;
74+ assert_eq_fmt ! ( c "%-10s", c "world") ;
75+ assert_eq_fmt ! ( c "%s", null_mut:: <c_char>( ) ) ;
7976 }
8077}
8178
8279#[ test]
8380fn test_int ( ) {
8481 unsafe {
85- assert_eq_fmt ! ( c_str! ( "% 0*i" ) , 23125 , 17 ) ;
86- assert_eq_fmt ! ( c_str! ( "% 010i" ) , 23125 ) ;
87- assert_eq_fmt ! ( c_str! ( "% 10i" ) , 23125 ) ;
88- assert_eq_fmt ! ( c_str! ( "% 5i" ) , 23125 ) ;
89- assert_eq_fmt ! ( c_str! ( "% 4i" ) , 23125 ) ;
90- assert_eq_fmt ! ( c_str! ( "%- 010i" ) , 23125 ) ;
91- assert_eq_fmt ! ( c_str! ( "%- 10i" ) , 23125 ) ;
92- assert_eq_fmt ! ( c_str! ( "%- 5i" ) , 23125 ) ;
93- assert_eq_fmt ! ( c_str! ( "%- 4i" ) , 23125 ) ;
94- assert_eq_fmt ! ( c_str! ( "%+ 010i" ) , 23125 ) ;
95- assert_eq_fmt ! ( c_str! ( "%+ 10i" ) , 23125 ) ;
96- assert_eq_fmt ! ( c_str! ( "%+ 5i" ) , 23125 ) ;
97- assert_eq_fmt ! ( c_str! ( "%+ 4i" ) , 23125 ) ;
98- assert_eq_fmt ! ( c_str! ( "%-010i" ) , 23125 ) ;
99- assert_eq_fmt ! ( c_str! ( "%-10i" ) , 23125 ) ;
100- assert_eq_fmt ! ( c_str! ( "%-5i" ) , 23125 ) ;
101- assert_eq_fmt ! ( c_str! ( "%-4i" ) , 23125 ) ;
82+ assert_eq_fmt ! ( c "% 0*i", 23125 , 17 ) ;
83+ assert_eq_fmt ! ( c "% 010i", 23125 ) ;
84+ assert_eq_fmt ! ( c "% 10i", 23125 ) ;
85+ assert_eq_fmt ! ( c "% 5i", 23125 ) ;
86+ assert_eq_fmt ! ( c "% 4i", 23125 ) ;
87+ assert_eq_fmt ! ( c "%- 010i", 23125 ) ;
88+ assert_eq_fmt ! ( c "%- 10i", 23125 ) ;
89+ assert_eq_fmt ! ( c "%- 5i", 23125 ) ;
90+ assert_eq_fmt ! ( c "%- 4i", 23125 ) ;
91+ assert_eq_fmt ! ( c "%+ 010i", 23125 ) ;
92+ assert_eq_fmt ! ( c "%+ 10i", 23125 ) ;
93+ assert_eq_fmt ! ( c "%+ 5i", 23125 ) ;
94+ assert_eq_fmt ! ( c "%+ 4i", 23125 ) ;
95+ assert_eq_fmt ! ( c "%-010i", 23125 ) ;
96+ assert_eq_fmt ! ( c "%-10i", 23125 ) ;
97+ assert_eq_fmt ! ( c "%-5i", 23125 ) ;
98+ assert_eq_fmt ! ( c "%-4i", 23125 ) ;
10299 }
103100}
104101
105102#[ test]
106103fn test_octal ( ) {
107104 unsafe {
108- assert_eq_fmt ! ( c_str! ( "% 010o" ) , 23125 ) ;
109- assert_eq_fmt ! ( c_str! ( "% 10o" ) , 23125 ) ;
110- assert_eq_fmt ! ( c_str! ( "% 5o" ) , 23125 ) ;
111- assert_eq_fmt ! ( c_str! ( "% 4o" ) , 23125 ) ;
112- assert_eq_fmt ! ( c_str! ( "%- 010o" ) , 23125 ) ;
113- assert_eq_fmt ! ( c_str! ( "%- 10o" ) , 23125 ) ;
114- assert_eq_fmt ! ( c_str! ( "%- 5o" ) , 23125 ) ;
115- assert_eq_fmt ! ( c_str! ( "%- 4o" ) , 23125 ) ;
116- assert_eq_fmt ! ( c_str! ( "%+ 010o" ) , 23125 ) ;
117- assert_eq_fmt ! ( c_str! ( "%+ 10o" ) , 23125 ) ;
118- assert_eq_fmt ! ( c_str! ( "%+ 5o" ) , 23125 ) ;
119- assert_eq_fmt ! ( c_str! ( "%+ 4o" ) , 23125 ) ;
120- assert_eq_fmt ! ( c_str! ( "%-010o" ) , 23125 ) ;
121- assert_eq_fmt ! ( c_str! ( "%-10o" ) , 23125 ) ;
122- assert_eq_fmt ! ( c_str! ( "%-5o" ) , 23125 ) ;
123- assert_eq_fmt ! ( c_str! ( "%-4o" ) , 23125 ) ;
105+ assert_eq_fmt ! ( c "% 010o", 23125 ) ;
106+ assert_eq_fmt ! ( c "% 10o", 23125 ) ;
107+ assert_eq_fmt ! ( c "% 5o", 23125 ) ;
108+ assert_eq_fmt ! ( c "% 4o", 23125 ) ;
109+ assert_eq_fmt ! ( c "%- 010o", 23125 ) ;
110+ assert_eq_fmt ! ( c "%- 10o", 23125 ) ;
111+ assert_eq_fmt ! ( c "%- 5o", 23125 ) ;
112+ assert_eq_fmt ! ( c "%- 4o", 23125 ) ;
113+ assert_eq_fmt ! ( c "%+ 010o", 23125 ) ;
114+ assert_eq_fmt ! ( c "%+ 10o", 23125 ) ;
115+ assert_eq_fmt ! ( c "%+ 5o", 23125 ) ;
116+ assert_eq_fmt ! ( c "%+ 4o", 23125 ) ;
117+ assert_eq_fmt ! ( c "%-010o", 23125 ) ;
118+ assert_eq_fmt ! ( c "%-10o", 23125 ) ;
119+ assert_eq_fmt ! ( c "%-5o", 23125 ) ;
120+ assert_eq_fmt ! ( c "%-4o", 23125 ) ;
124121 }
125122}
126123
127124#[ test]
128125fn test_hex ( ) {
129126 unsafe {
130- assert_eq_fmt ! ( c_str! ( "% 010x" ) , 23125 ) ;
131- assert_eq_fmt ! ( c_str! ( "% 10x" ) , 23125 ) ;
132- assert_eq_fmt ! ( c_str! ( "% 5x" ) , 23125 ) ;
133- assert_eq_fmt ! ( c_str! ( "% 4x" ) , 23125 ) ;
134- assert_eq_fmt ! ( c_str! ( "%- 010x" ) , 23125 ) ;
135- assert_eq_fmt ! ( c_str! ( "%- 10x" ) , 23125 ) ;
136- assert_eq_fmt ! ( c_str! ( "%- 5x" ) , 23125 ) ;
137- assert_eq_fmt ! ( c_str! ( "%- 4x" ) , 23125 ) ;
138- assert_eq_fmt ! ( c_str! ( "%+ 010x" ) , 23125 ) ;
139- assert_eq_fmt ! ( c_str! ( "%+ 10x" ) , 23125 ) ;
140- assert_eq_fmt ! ( c_str! ( "%+ 5x" ) , 23125 ) ;
141- assert_eq_fmt ! ( c_str! ( "%+ 4x" ) , 23125 ) ;
142- assert_eq_fmt ! ( c_str! ( "%-010x" ) , 23125 ) ;
143- assert_eq_fmt ! ( c_str! ( "%-10x" ) , 23125 ) ;
144- assert_eq_fmt ! ( c_str! ( "%-5x" ) , 23125 ) ;
145- assert_eq_fmt ! ( c_str! ( "%-4x" ) , 23125 ) ;
127+ assert_eq_fmt ! ( c "% 010x", 23125 ) ;
128+ assert_eq_fmt ! ( c "% 10x", 23125 ) ;
129+ assert_eq_fmt ! ( c "% 5x", 23125 ) ;
130+ assert_eq_fmt ! ( c "% 4x", 23125 ) ;
131+ assert_eq_fmt ! ( c "%- 010x", 23125 ) ;
132+ assert_eq_fmt ! ( c "%- 10x", 23125 ) ;
133+ assert_eq_fmt ! ( c "%- 5x", 23125 ) ;
134+ assert_eq_fmt ! ( c "%- 4x", 23125 ) ;
135+ assert_eq_fmt ! ( c "%+ 010x", 23125 ) ;
136+ assert_eq_fmt ! ( c "%+ 10x", 23125 ) ;
137+ assert_eq_fmt ! ( c "%+ 5x", 23125 ) ;
138+ assert_eq_fmt ! ( c "%+ 4x", 23125 ) ;
139+ assert_eq_fmt ! ( c "%-010x", 23125 ) ;
140+ assert_eq_fmt ! ( c "%-10x", 23125 ) ;
141+ assert_eq_fmt ! ( c "%-5x", 23125 ) ;
142+ assert_eq_fmt ! ( c "%-4x", 23125 ) ;
146143
147- assert_eq_fmt ! ( c_str! ( "%# 010x" ) , 23125 ) ;
148- assert_eq_fmt ! ( c_str! ( "%# 10x" ) , 23125 ) ;
149- assert_eq_fmt ! ( c_str! ( "%# 5x" ) , 23125 ) ;
150- assert_eq_fmt ! ( c_str! ( "%# 4x" ) , 23125 ) ;
151- assert_eq_fmt ! ( c_str! ( "%#- 010x" ) , 23125 ) ;
152- assert_eq_fmt ! ( c_str! ( "%#- 10x" ) , 23125 ) ;
153- assert_eq_fmt ! ( c_str! ( "%#- 5x" ) , 23125 ) ;
154- assert_eq_fmt ! ( c_str! ( "%#- 4x" ) , 23125 ) ;
155- assert_eq_fmt ! ( c_str! ( "%#+ 010x" ) , 23125 ) ;
156- assert_eq_fmt ! ( c_str! ( "%#+ 10x" ) , 23125 ) ;
157- assert_eq_fmt ! ( c_str! ( "%#+ 5x" ) , 23125 ) ;
158- assert_eq_fmt ! ( c_str! ( "%#+ 4x" ) , 23125 ) ;
159- assert_eq_fmt ! ( c_str! ( "%#-010x" ) , 23125 ) ;
160- assert_eq_fmt ! ( c_str! ( "%#-10x" ) , 23125 ) ;
161- assert_eq_fmt ! ( c_str! ( "%#-5x" ) , 23125 ) ;
162- assert_eq_fmt ! ( c_str! ( "%#-4x" ) , 23125 ) ;
144+ assert_eq_fmt ! ( c "%# 010x", 23125 ) ;
145+ assert_eq_fmt ! ( c "%# 10x", 23125 ) ;
146+ assert_eq_fmt ! ( c "%# 5x", 23125 ) ;
147+ assert_eq_fmt ! ( c "%# 4x", 23125 ) ;
148+ assert_eq_fmt ! ( c "%#- 010x", 23125 ) ;
149+ assert_eq_fmt ! ( c "%#- 10x", 23125 ) ;
150+ assert_eq_fmt ! ( c "%#- 5x", 23125 ) ;
151+ assert_eq_fmt ! ( c "%#- 4x", 23125 ) ;
152+ assert_eq_fmt ! ( c "%#+ 010x", 23125 ) ;
153+ assert_eq_fmt ! ( c "%#+ 10x", 23125 ) ;
154+ assert_eq_fmt ! ( c "%#+ 5x", 23125 ) ;
155+ assert_eq_fmt ! ( c "%#+ 4x", 23125 ) ;
156+ assert_eq_fmt ! ( c "%#-010x", 23125 ) ;
157+ assert_eq_fmt ! ( c "%#-10x", 23125 ) ;
158+ assert_eq_fmt ! ( c "%#-5x", 23125 ) ;
159+ assert_eq_fmt ! ( c "%#-4x", 23125 ) ;
163160
164- assert_eq_fmt ! ( c_str! ( "% 010X" ) , 23125 ) ;
165- assert_eq_fmt ! ( c_str! ( "% 10X" ) , 23125 ) ;
166- assert_eq_fmt ! ( c_str! ( "% 5X" ) , 23125 ) ;
167- assert_eq_fmt ! ( c_str! ( "% 4X" ) , 23125 ) ;
168- assert_eq_fmt ! ( c_str! ( "%- 010X" ) , 23125 ) ;
169- assert_eq_fmt ! ( c_str! ( "%- 10X" ) , 23125 ) ;
170- assert_eq_fmt ! ( c_str! ( "%- 5X" ) , 23125 ) ;
171- assert_eq_fmt ! ( c_str! ( "%- 4X" ) , 23125 ) ;
172- assert_eq_fmt ! ( c_str! ( "%+ 010X" ) , 23125 ) ;
173- assert_eq_fmt ! ( c_str! ( "%+ 10X" ) , 23125 ) ;
174- assert_eq_fmt ! ( c_str! ( "%+ 5X" ) , 23125 ) ;
175- assert_eq_fmt ! ( c_str! ( "%+ 4X" ) , 23125 ) ;
176- assert_eq_fmt ! ( c_str! ( "%-010X" ) , 23125 ) ;
177- assert_eq_fmt ! ( c_str! ( "%-10X" ) , 23125 ) ;
178- assert_eq_fmt ! ( c_str! ( "%-5X" ) , 23125 ) ;
179- assert_eq_fmt ! ( c_str! ( "%-4X" ) , 23125 ) ;
161+ assert_eq_fmt ! ( c "% 010X", 23125 ) ;
162+ assert_eq_fmt ! ( c "% 10X", 23125 ) ;
163+ assert_eq_fmt ! ( c "% 5X", 23125 ) ;
164+ assert_eq_fmt ! ( c "% 4X", 23125 ) ;
165+ assert_eq_fmt ! ( c "%- 010X", 23125 ) ;
166+ assert_eq_fmt ! ( c "%- 10X", 23125 ) ;
167+ assert_eq_fmt ! ( c "%- 5X", 23125 ) ;
168+ assert_eq_fmt ! ( c "%- 4X", 23125 ) ;
169+ assert_eq_fmt ! ( c "%+ 010X", 23125 ) ;
170+ assert_eq_fmt ! ( c "%+ 10X", 23125 ) ;
171+ assert_eq_fmt ! ( c "%+ 5X", 23125 ) ;
172+ assert_eq_fmt ! ( c "%+ 4X", 23125 ) ;
173+ assert_eq_fmt ! ( c "%-010X", 23125 ) ;
174+ assert_eq_fmt ! ( c "%-10X", 23125 ) ;
175+ assert_eq_fmt ! ( c "%-5X", 23125 ) ;
176+ assert_eq_fmt ! ( c "%-4X", 23125 ) ;
180177 }
181178}
182179
183180#[ test]
184181fn test_float ( ) {
185182 unsafe {
186- assert_eq_fmt ! ( c_str! ( "%f" ) , 1234f64 ) ;
187- assert_eq_fmt ! ( c_str! ( "%.5f" ) , 1234f64 ) ;
188- assert_eq_fmt ! ( c_str! ( "%.*f" ) , 1234f64 , 3 ) ;
183+ assert_eq_fmt ! ( c "%f", 1234f64 ) ;
184+ assert_eq_fmt ! ( c "%.5f", 1234f64 ) ;
185+ assert_eq_fmt ! ( c "%.*f", 1234f64 , 3 ) ;
189186 }
190187}
191188
192189#[ test]
193190fn test_char ( ) {
194191 unsafe {
195- assert_eq_fmt ! ( c_str! ( "%c" ) , b'a' as c_int) ;
196- assert_eq_fmt ! ( c_str! ( "%10c" ) , b'a' as c_int) ;
197- assert_eq_fmt ! ( c_str! ( "%-10c" ) , b'a' as c_int) ;
192+ assert_eq_fmt ! ( c "%c", b'a' as c_int) ;
193+ assert_eq_fmt ! ( c "%10c", b'a' as c_int) ;
194+ assert_eq_fmt ! ( c "%-10c", b'a' as c_int) ;
198195 }
199196}
0 commit comments