Skip to content

Commit 58f1d1f

Browse files
authored
Merge pull request #14 from isislovecruft/feature/rm-feature-test
Remove the requirement for #![feature(test)]
2 parents c7d8aab + aedf1f6 commit 58f1d1f

File tree

2 files changed

+40
-26
lines changed

2 files changed

+40
-26
lines changed

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,4 @@ u32_backend = ["curve25519-dalek/u32_backend"]
3333
u64_backend = ["curve25519-dalek/u64_backend"]
3434
avx2_backend = ["curve25519-dalek/avx2_backend"]
3535
nightly = ["curve25519-dalek/nightly"]
36+
bench = [ ]

src/lib.rs

Lines changed: 39 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
//! EXPERIMENTAL**. (I haven't actually checked carefully that the
2222
//! proofs are sound, for instance...)
2323
#![allow(non_snake_case)]
24-
#![feature(test)]
24+
#![cfg_attr(feature = "bench", feature(test))]
2525

2626
extern crate serde;
2727

@@ -399,7 +399,7 @@ macro_rules! create_nipk {
399399
}
400400
}
401401

402-
#[cfg(test)]
402+
#[cfg(all(feature = "bench", test))]
403403
mod bench {
404404
extern crate test;
405405

@@ -477,13 +477,11 @@ macro_rules! create_nipk {
477477
}
478478

479479
#[cfg(test)]
480-
mod tests {
480+
mod test {
481481
extern crate bincode;
482482
extern crate sha2;
483-
extern crate test;
484483

485484
use self::sha2::Sha512;
486-
use self::test::Bencher;
487485

488486
use curve25519_dalek::constants as dalek_constants;
489487
use curve25519_dalek::ristretto::RistrettoPoint;
@@ -511,8 +509,8 @@ mod tests {
511509
}
512510
}
513511

514-
#[bench]
515-
fn create_gen_dleq(b: &mut Bencher) {
512+
#[test]
513+
fn create_and_verify_gen_dleq() {
516514
let G = &dalek_constants::RISTRETTO_BASEPOINT_POINT;
517515
let H = RistrettoPoint::hash_from_bytes::<Sha512>(G.compress().as_bytes());
518516

@@ -530,14 +528,34 @@ mod tests {
530528
};
531529
let secrets = dleq::Secrets { x: &x };
532530

533-
b.iter(|| {
534-
let mut transcript = Transcript::new(b"DLEQBenchCreate");
535-
dleq::Proof::create(&mut transcript, publics, secrets)
536-
});
531+
let mut transcript = Transcript::new(b"DLEQTest");
532+
let proof = dleq::Proof::create(&mut transcript, publics, secrets);
533+
// serialize to bincode representation
534+
let proof_bytes = bincode::serialize(&proof).unwrap();
535+
// parse bytes back to memory
536+
let parsed_proof: dleq::Proof = bincode::deserialize(&proof_bytes).unwrap();
537+
538+
let mut transcript = Transcript::new(b"DLEQTest");
539+
assert!(parsed_proof.verify(&mut transcript, publics).is_ok());
537540
}
541+
}
542+
543+
#[cfg(all(feature = "bench", test))]
544+
mod bench {
545+
use super::*;
546+
547+
extern crate test;
548+
extern crate sha2;
549+
550+
use self::test::Bencher;
551+
use self::sha2::Sha512;
552+
553+
use curve25519_dalek::constants as dalek_constants;
554+
use curve25519_dalek::ristretto::RistrettoPoint;
555+
use curve25519_dalek::scalar::Scalar;
538556

539557
#[bench]
540-
fn verify_gen_dleq(b: &mut Bencher) {
558+
fn create_gen_dleq(b: &mut Bencher) {
541559
let G = &dalek_constants::RISTRETTO_BASEPOINT_POINT;
542560
let H = RistrettoPoint::hash_from_bytes::<Sha512>(G.compress().as_bytes());
543561

@@ -555,16 +573,14 @@ mod tests {
555573
};
556574
let secrets = dleq::Secrets { x: &x };
557575

558-
let mut transcript = Transcript::new(b"DLEQBenchVerify");
559-
let proof = dleq::Proof::create(&mut transcript, publics, secrets);
560576
b.iter(|| {
561-
let mut transcript = Transcript::new(b"DLEQBenchVerify");
562-
proof.verify(&mut transcript, publics).is_ok()
577+
let mut transcript = Transcript::new(b"DLEQBenchCreate");
578+
dleq::Proof::create(&mut transcript, publics, secrets)
563579
});
564580
}
565581

566-
#[test]
567-
fn create_and_verify_gen_dleq() {
582+
#[bench]
583+
fn verify_gen_dleq(b: &mut Bencher) {
568584
let G = &dalek_constants::RISTRETTO_BASEPOINT_POINT;
569585
let H = RistrettoPoint::hash_from_bytes::<Sha512>(G.compress().as_bytes());
570586

@@ -582,14 +598,11 @@ mod tests {
582598
};
583599
let secrets = dleq::Secrets { x: &x };
584600

585-
let mut transcript = Transcript::new(b"DLEQTest");
601+
let mut transcript = Transcript::new(b"DLEQBenchVerify");
586602
let proof = dleq::Proof::create(&mut transcript, publics, secrets);
587-
// serialize to bincode representation
588-
let proof_bytes = bincode::serialize(&proof).unwrap();
589-
// parse bytes back to memory
590-
let parsed_proof: dleq::Proof = bincode::deserialize(&proof_bytes).unwrap();
591-
592-
let mut transcript = Transcript::new(b"DLEQTest");
593-
assert!(parsed_proof.verify(&mut transcript, publics).is_ok());
603+
b.iter(|| {
604+
let mut transcript = Transcript::new(b"DLEQBenchVerify");
605+
proof.verify(&mut transcript, publics).is_ok()
606+
});
594607
}
595608
}

0 commit comments

Comments
 (0)