OSDN Git Service

* public snapshot of sid simulator
[pf3gnuchains/pf3gnuchains3x.git] / sid / component / testsuite / sidcomp.memory / at29inv.exp
1 # Initialisation.
2 set manufacturer_code 0x1F
3 set default_size 524288
4 set default_sector_size 512
5 set default_device_code 0x5B
6
7 set test "sid configuration"
8 sid_config_component_test "at29b.conf" \
9     "load [sid_find_file libmemory.la] mem_component_library" \
10     "hw-memory-flash-at29"
11 pass $test
12
13 set test "sid start"
14 if {[sid_start "at29b.conf"]} { pass $test } else { fail $test ; return }
15
16 set test "try to set size-max"
17 set status [sid_cmd "sid::component::set_attribute_value $victim size-max 1024"]
18 set tsize [sid_cmd "sid::component::attribute_value $victim size-max"]
19 if {$status == "bad_value" && $tsize == "33554432"} { pass $test } else { fail $test }
20
21 set test "set size to 10000000000000000"
22 set status1 [sid_cmd "sid::component::set_attribute_value $victim size 8192"]
23 set status2 [sid_cmd "sid::component::set_attribute_value $victim size 10000000000000000"]
24 set result [sid_cmd "sid::component::attribute_value $victim size"]
25 if { $status1 == "ok" && $status2 == "bad_value" && $result == "8192"} { pass $test } else { fail $test }
26 # $result should be what it was last set successfully
27
28 set test "set size to size-max+1"
29 set maxsize [sid_cmd "sid::component::attribute_value $victim size-max"]
30 set result [sid_cmd "sid::component::attribute_value $victim size"]
31 set size [expr {$maxsize + 1}]
32 set status [sid_cmd "sid::component::set_attribute_value $victim size $size"]
33 set result [sid_cmd "sid::component::attribute_value $victim size"]
34 if {$status == "bad_value" && $result == "8192"} { pass $test } else { fail $test }
35
36 foreach badvalue {-1 abcdefghijklmn FALSE 1.234e-10} {
37 # -1 gives bad value because the 2's compliment of -1 is bigger than size-max
38     set test "set size to $badvalue"
39     set status [sid_cmd "sid::component::set_attribute_value $victim size $badvalue"]
40     set result [sid_cmd "sid::component::attribute_value $victim size"]
41     if {$status == "bad_value" && $result == "8192"} { pass $test } else { 
42         fail $test }
43 }
44
45 set test "set size to 0"
46 set status [sid_cmd "sid::component::set_attribute_value $victim size 0"]
47 set result [sid_cmd "sid::component::attribute_value $victim size"]
48 if {$status == "ok" && $result == "0"} { pass $test } else { fail $test }
49
50 foreach badvalue {-1 0 10000000000000000 xyz FALSE 1.234e-10} {
51     set test "set sector-size to $badvalue"
52     set status [sid_cmd "sid::component::set_attribute_value $victim sector-size $badvalue"]
53     set result [sid_cmd "sid::component::attribute_value $victim sector-size"]
54     if {$status == "bad_value" && $result == $default_sector_size} { pass $test } else { fail "$test -- got $status, $result" }
55 }
56
57 set test "set device-code to 0x100"
58 set status1 [sid_cmd "sid::component::set_attribute_value $victim device-code 0x01"]
59 set status2 [sid_cmd "sid::component::set_attribute_value $victim device-code 0x100"]
60 set result [sid_cmd "sid::component::attribute_value $victim device-code"]
61 if {$status1 == "ok" && $status == "bad_value" && $result == "1"} { pass $test } else { fail $test }
62
63 set test "set device-code to -1"
64 # should set to 255
65 set status [sid_cmd "sid::component::set_attribute_value $victim device-code -1"]
66 set result [sid_cmd "sid::component::attribute_value $victim device-code"]
67 if {$status == "ok" && $result == "0xFF"} { pass $test } else { fail $test }
68
69 foreach badvalue {10000000000000000 xyz FALSE 1.234e-10} {
70     set test "set device-code to $badvalue"
71     set status [sid_cmd "sid::component::set_attribute_value $victim device-code $badvalue"]
72     set result [sid_cmd "sid::component::attribute_value $victim device-code"]
73     if {$status == "bad_value" && $result == "0xFF"} { pass $test } else { 
74         fail $test }
75 }
76
77 #cr 101337
78 set test "set sector-size bigger than size "
79 set status1 [sid_cmd "sid::component::set_attribute_value $victim size 32768"]
80 set status2 [sid_cmd "sid::component::set_attribute_value $victim sector-size 65536"]
81 set ssize [sid_cmd "sid::component::attribute_value $victim sector-size"]
82 set size [sid_cmd "sid::component::attribute_value $victim size"]
83 if {$status1 == "ok" && $status2 == "bad_value" && $ssize<=$size} then { pass $test } else { fail $test }
84
85 set test "drive image-load with unset image-file attribute"
86 set names [sid_cmd "sid::component::attribute_value $victim image-file"]
87 set pin [sid_cmd "sid::component::find_pin $victim image-load"]
88 sid_cmd "sid::pin::driven_h4 $pin 0"
89 if {$names == "" && $pin != ""} then { pass $test } else { fail $test }
90
91 set test "drive image-store with unset image-file attribute"
92 set names [sid_cmd "sid::component::attribute_value $victim image-file"]
93 set pin [sid_cmd "sid::component::find_pin $victim image-store"]
94 sid_cmd "sid::pin::driven_h4 $pin 0"
95 if {$names == "" && $pin != ""} then { pass $test } else { fail $test }
96
97 set test "attribute list with incorrect category names"
98 set category "something"
99 set names [sid_cmd "sid::component::attribute_names_in_category $victim $category"]
100 if {$names == ""} then { pass $test } else { fail $test }
101
102 set test "query incorrect attributes name"
103 set value [sid_cmd "sid::component::attribute_value $victim seqattr"]
104 if {$value == ""} then { pass $test } else { fail $test }
105
106 set test "set attributes values to non existing attribute"
107 set status [sid_cmd "sid::component::set_attribute_value $victim attr 112"]
108 if {$status == "not_found"} then { pass $test } else { fail $test }
109
110 set test "find pin that does not exist"
111 set pin [sid_cmd "sid::component::find_pin $victim newpin"]
112 if {$pin == ""} then { pass $test } else { fail $test }
113
114 set test "connect pin that does not exist"
115 set pin [sid_cmd "sid::pin::new"]
116 set status [sid_cmd "sid::component::connect_pin $victim newpin2 $pin"]
117 if {$status == "not_found"} then { pass $test } else { fail $test }
118
119 set test "disconnect pin that does not exist"
120 set pin [sid_cmd "sid::pin::new"]
121 set status [sid_cmd "sid::component::disconnect_pin $victim output--0 $pin"]
122 if {$status == "not_found" } then { pass $test } else { fail $test }
123
124 set test "check connected pins that does not exist"
125 set pins [sid_cmd "sid::component::connected_pins $victim notexist"]
126 if {$pins == ""} then { pass $test } else { fail $test }
127
128 set test "connect read-write-port as a accessor"
129 set bus [sid_cmd "sid::bus::new"]
130 set status [sid_cmd "sid::component::connect_accessor $victim read-write-port $bus"]
131 if {$status == "not_found"} then { pass $test } else { fail $test }
132
133 set test "check connected read-write-port bus"
134 set bus [sid_cmd "sid::component::connected_bus $victim read-write-port"]
135 if {$bus == ""} then { pass $test } else { fail $test }
136
137 set test "connect accessor that does not exist"
138 set bus [sid_cmd "sid::bus::new"]
139 set status [sid_cmd "sid::component::connect_accessor $victim accessor $bus"]
140 if {$status == "not_found"} then { pass $test } else { fail $test }
141
142 set test "find bus that does not exist"
143 set bus [sid_cmd "sid::component::find_bus $victim anybus"]
144 if {$bus == ""} then { pass $test } else { fail $test }
145
146 set test "find connected bus that does not exist"
147 set bus [sid_cmd "sid::component::connected_bus $victim anybus"]
148 if {$bus == ""} then { pass $test } else { fail $test }
149
150 set test "set relationships that does not exist"
151 set status [sid_cmd "sid::component::relate $victim relationship $victim"]
152 if {$status == "not_found"} then { pass $test } else { fail $test }
153
154 set test "query relationships that does not exist"
155 set comps [sid_cmd "sid::component::related_components $victim relation2"]
156 if {$comps == ""} then { pass $test } else { fail $test }
157
158
159
160 set test "sid stop"
161 if [sid_stop] then { pass $test } else { fail $test ; return }
162
163
164 # zap temp file if tests were successful 
165 global exit_status
166 if {$exit_status == "0"} then { file delete "at29b.conf" }