@@ -284,81 +284,109 @@ impl<'self> FromBase64 for &'self str {
284284 }
285285}
286286
287- #[ test]
288- fn test_to_base64_basic ( ) {
289- assert_eq ! ( "" . to_base64( STANDARD ) , ~"") ;
290- assert_eq ! ( "f" . to_base64( STANDARD ) , ~"Zg ==");
291- assert_eq!(" fo".to_base64(STANDARD), ~" Zm8 =");
292- assert_eq!(" foo".to_base64(STANDARD), ~" Zm9v ");
293- assert_eq!(" foob".to_base64(STANDARD), ~" Zm9vYg ==");
294- assert_eq!(" fooba".to_base64(STANDARD), ~" Zm9vYmE =");
295- assert_eq!(" foobar".to_base64(STANDARD), ~" Zm9vYmFy ");
296- }
287+ #[ cfg( test) ]
288+ mod test {
289+ use test:: BenchHarness ;
290+ use base64:: * ;
291+
292+ #[ test]
293+ fn test_to_base64_basic ( ) {
294+ assert_eq ! ( "" . to_base64( STANDARD ) , ~"") ;
295+ assert_eq ! ( "f" . to_base64( STANDARD ) , ~"Zg ==");
296+ assert_eq!(" fo".to_base64(STANDARD), ~" Zm8 =");
297+ assert_eq!(" foo".to_base64(STANDARD), ~" Zm9v ");
298+ assert_eq!(" foob".to_base64(STANDARD), ~" Zm9vYg ==");
299+ assert_eq!(" fooba".to_base64(STANDARD), ~" Zm9vYmE =");
300+ assert_eq!(" foobar".to_base64(STANDARD), ~" Zm9vYmFy ");
301+ }
297302
298- #[test]
299- fn test_to_base64_line_break() {
300- assert!(![0u8, 1000].to_base64(Config {line_length: None, ..STANDARD})
301- .contains("\r \n " ) ) ;
302- assert_eq ! ( "foobar" . to_base64( Config { line_length: Some ( 4 ) , ..STANDARD } ) ,
303- ~"Zm9v \r \n YmFy ");
304- }
303+ #[test]
304+ fn test_to_base64_line_break() {
305+ assert!(![0u8, 1000].to_base64(Config {line_length: None, ..STANDARD})
306+ .contains("\r \n " ) ) ;
307+ assert_eq ! ( "foobar" . to_base64( Config { line_length: Some ( 4 ) , ..STANDARD } ) ,
308+ ~"Zm9v \r \n YmFy ");
309+ }
305310
306- #[test]
307- fn test_to_base64_padding() {
308- assert_eq!(" f".to_base64(Config {pad: false, ..STANDARD}), ~" Zg ");
309- assert_eq!(" fo".to_base64(Config {pad: false, ..STANDARD}), ~" Zm8 ");
310- }
311+ #[test]
312+ fn test_to_base64_padding() {
313+ assert_eq!(" f".to_base64(Config {pad: false, ..STANDARD}), ~" Zg ");
314+ assert_eq!(" fo".to_base64(Config {pad: false, ..STANDARD}), ~" Zm8 ");
315+ }
311316
312- #[test]
313- fn test_to_base64_url_safe() {
314- assert_eq!([251, 255].to_base64(URL_SAFE), ~" -_8");
315- assert_eq!([251, 255].to_base64(STANDARD), ~" +/8 =");
316- }
317+ #[test]
318+ fn test_to_base64_url_safe() {
319+ assert_eq!([251, 255].to_base64(URL_SAFE), ~" -_8");
320+ assert_eq!([251, 255].to_base64(STANDARD), ~" +/8 =");
321+ }
317322
318- #[test]
319- fn test_from_base64_basic() {
320- assert_eq!(" ".from_base64().get(), " ".as_bytes().to_owned());
321- assert_eq!(" Zg ==".from_base64().get(), " f".as_bytes().to_owned());
322- assert_eq!(" Zm8 =".from_base64().get(), " fo".as_bytes().to_owned());
323- assert_eq!(" Zm9v ".from_base64().get(), " foo".as_bytes().to_owned());
324- assert_eq!(" Zm9vYg ==".from_base64().get(), " foob".as_bytes().to_owned());
325- assert_eq!(" Zm9vYmE =".from_base64().get(), " fooba".as_bytes().to_owned());
326- assert_eq!(" Zm9vYmFy ".from_base64().get(), " foobar".as_bytes().to_owned());
327- }
323+ #[test]
324+ fn test_from_base64_basic() {
325+ assert_eq!(" ".from_base64().get(), " ".as_bytes().to_owned());
326+ assert_eq!(" Zg ==".from_base64().get(), " f".as_bytes().to_owned());
327+ assert_eq!(" Zm8 =".from_base64().get(), " fo".as_bytes().to_owned());
328+ assert_eq!(" Zm9v ".from_base64().get(), " foo".as_bytes().to_owned());
329+ assert_eq!(" Zm9vYg ==".from_base64().get(), " foob".as_bytes().to_owned());
330+ assert_eq!(" Zm9vYmE =".from_base64().get(), " fooba".as_bytes().to_owned());
331+ assert_eq!(" Zm9vYmFy ".from_base64().get(), " foobar".as_bytes().to_owned());
332+ }
328333
329- #[test]
330- fn test_from_base64_newlines() {
331- assert_eq!(" Zm9v \r \n YmFy ".from_base64().get(),
332- " foobar".as_bytes().to_owned());
333- }
334+ #[test]
335+ fn test_from_base64_newlines() {
336+ assert_eq!(" Zm9v \r \n YmFy ".from_base64().get(),
337+ " foobar".as_bytes().to_owned());
338+ }
334339
335- #[test]
336- fn test_from_base64_urlsafe() {
337- assert_eq!(" -_8".from_base64().get(), " +/8 =".from_base64().get());
338- }
340+ #[test]
341+ fn test_from_base64_urlsafe() {
342+ assert_eq!(" -_8".from_base64().get(), " +/8 =".from_base64().get());
343+ }
339344
340- #[test]
341- fn test_from_base64_invalid_char() {
342- assert!(" Zm $=".from_base64().is_err())
343- assert!(" Zg ==$".from_base64().is_err());
344- }
345+ #[test]
346+ fn test_from_base64_invalid_char() {
347+ assert!(" Zm $=".from_base64().is_err())
348+ assert!(" Zg ==$".from_base64().is_err());
349+ }
345350
346- #[test]
347- fn test_from_base64_invalid_padding() {
348- assert!(" Z ===" . from_base64( ) . is_err( ) ) ;
349- }
351+ #[test]
352+ fn test_from_base64_invalid_padding() {
353+ assert!(" Z ===".from_base64().is_err());
354+ }
350355
351- #[ test]
352- fn test_base64_random( ) {
353- use std:: rand:: { task_rng, random, RngUtil } ;
354- use std:: vec;
356+ #[test]
357+ fn test_base64_random() {
358+ use std::rand::{task_rng, random, RngUtil};
359+ use std::vec;
355360
356- for 1000 . times {
357- let v: ~[ u8] = do vec:: build |push| {
358- for task_rng( ) . gen_uint_range( 1 , 100 ) . times {
359- push( random( ) ) ;
360- }
361- } ;
362- assert_eq ! ( v. to_base64( STANDARD ) . from_base64( ) . get( ) , v) ;
361+ for 1000.times {
362+ let v: ~[u8] = do vec::build |push| {
363+ for task_rng().gen_uint_range(1, 100).times {
364+ push(random());
365+ }
366+ };
367+ assert_eq!(v.to_base64(STANDARD).from_base64().get(), v);
368+ }
363369 }
364- }
370+
371+ #[bench]
372+ pub fn to_base64(bh: & mut BenchHarness) {
373+ let s = " イロハニホヘト チリヌルヲ ワカヨタレソ ツネナラム \
374+ ウヰノオクヤマ ケフコエテ アサキユメミシ ヱヒモセスン";
375+ do bh.iter {
376+ s.to_base64(STANDARD);
377+ }
378+ bh.bytes = s.len() as u64;
379+ }
380+
381+ #[bench]
382+ pub fn from_base64(bh: & mut BenchHarness) {
383+ let s = " イロハニホヘト チリヌルヲ ワカヨタレソ ツネナラム \
384+ ウヰノオクヤマ ケフコエテ アサキユメミシ ヱヒモセスン" ;
385+ let b = s. to_base64( STANDARD ) ;
386+ do bh. iter {
387+ b. from_base64( ) ;
388+ }
389+ bh. bytes = b. len( ) as u64 ;
390+ }
391+
392+ }
0 commit comments