Skip to content

Commit

Permalink
Adds (more) test cases for auto_encode.
Browse files Browse the repository at this point in the history
  • Loading branch information
jbclements committed Feb 26, 2013
1 parent 5328f3c commit 5e319fb
Showing 1 changed file with 20 additions and 16 deletions.
36 changes: 20 additions & 16 deletions src/libsyntax/ext/auto_encode.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1173,6 +1173,8 @@ mod test {
CallToEmitEnumVariantArg(uint),
CallToEmitUint(uint),
CallToEmitNil,
CallToEmitStruct(~str,uint),
CallToEmitField(~str,uint),
// all of the ones I was too lazy to handle:
CallToOther
}
Expand Down Expand Up @@ -1251,11 +1253,11 @@ mod test {
fn emit_rec(&self, f: fn()) {
self.add_unknown_to_log(); f();
}
fn emit_struct(&self, _name: &str, +_len: uint, f: fn()) {
self.add_unknown_to_log(); f();
fn emit_struct(&self, name: &str, +len: uint, f: fn()) {
self.add_to_log(CallToEmitStruct (name.to_str(),len)); f();
}
fn emit_field(&self, _name: &str, +_idx: uint, f: fn()) {
self.add_unknown_to_log(); f();
fn emit_field(&self, name: &str, +idx: uint, f: fn()) {
self.add_to_log(CallToEmitField (name.to_str(),idx)); f();
}

fn emit_tup(&self, +_len: uint, f: fn()) {
Expand All @@ -1267,23 +1269,12 @@ mod test {
}


#[auto_decode]
#[auto_encode]
struct Node {id: uint}

fn to_call_log (val: Encodable<TestEncoder>) -> ~[call] {
let mut te = TestEncoder {call_log: ~[]};
val.encode(&te);
te.call_log
}
/*
#[test] fn encode_test () {
check_equal (to_call_log(Node{id:34}
as Encodable::<std::json::Encoder>),
~[CallToEnum (~"Node"),
CallToEnumVariant]);
}
*/

#[auto_encode]
enum Written {
Book(uint,uint),
Expand All @@ -1300,4 +1291,17 @@ mod test {
CallToEmitEnumVariantArg (1),
CallToEmitUint (44)]);
}

pub enum BPos = uint;

#[auto_encode]
pub struct HasPos { pos : BPos }

#[test] fn encode_newtype_test () {
check_equal (to_call_log (HasPos {pos:BPos(48)}
as Encodable::<TestEncoder>),
~[CallToEmitStruct(~"HasPos",1),
CallToEmitField(~"pos",0),
CallToEmitUint(48)]);
}
}

0 comments on commit 5e319fb

Please sign in to comment.