Skip to content

Commit eea7ac9

Browse files
committed
Merge branch 'master' into stable-rust
2 parents 8b59104 + 6740cc9 commit eea7ac9

File tree

2 files changed

+110
-13
lines changed

2 files changed

+110
-13
lines changed

.travis.yml

+32
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,35 @@ rust:
33
- nightly
44
- beta
55
- stable
6+
7+
env:
8+
global:
9+
- RUSTFLAGS="-C link-dead-code"
10+
11+
before_install:
12+
- sudo apt-get update
13+
14+
addons:
15+
apt:
16+
packages:
17+
- libcurl4-openssl-dev
18+
- libelf-dev
19+
- libdw-dev
20+
- cmake
21+
- gcc
22+
- binutils-dev
23+
24+
after_success: |
25+
wget https://github.com/SimonKagstrom/kcov/archive/master.tar.gz &&
26+
tar xzf master.tar.gz &&
27+
cd kcov-master &&
28+
mkdir build &&
29+
cd build &&
30+
cmake .. &&
31+
make &&
32+
sudo make install &&
33+
cd ../.. &&
34+
rm -rf kcov-master &&
35+
for file in target/debug/rudy-*[^\.d]; do mkdir -p "target/cov/$(basename $file)"; kcov --exclude-pattern=/.cargo,/usr/lib --verify "target/cov/$(basename $file)" "$file"; done &&
36+
bash <(curl -s https://codecov.io/bash) &&
37+
echo "Uploaded code coverage"

src/rudymap/mod.rs

+78-13
Original file line numberDiff line numberDiff line change
@@ -70,19 +70,84 @@ impl<K: Key, V> Default for RudyMap<K, V> {
7070
}
7171
}
7272

73+
#[cfg(test)]
74+
mod test {
75+
use super::*;
76+
77+
#[test]
78+
fn test_insert_get_1() {
79+
let mut map = RudyMap::<usize, usize>::new();
80+
map.insert(4usize, 10usize);
81+
assert_eq!(map.get(4), Some(&10));
82+
}
7383

74-
#[test]
75-
fn test_insert_get_1() {
76-
let mut map = RudyMap::<usize, usize>::new();
77-
map.insert(4usize, 10usize);
78-
assert_eq!(map.get(4), Some(&10));
79-
}
84+
#[test]
85+
fn test_insert_get_2() {
86+
let mut map = RudyMap::<usize, usize>::new();
87+
map.insert(0usize, 10usize);
88+
map.insert(1usize, 20usize);
89+
assert_eq!(map.get(0), Some(&10));
90+
assert_eq!(map.get(1), Some(&20));
91+
}
92+
93+
#[test]
94+
fn test_contains_key() {
95+
let mut map = RudyMap::<u32, u32>::new();
96+
assert_eq!(map.contains_key(0), false);
97+
assert_eq!(map.contains_key(1), false);
98+
99+
assert_eq!(map.insert(0, 0), None);
100+
assert_eq!(map.contains_key(0), true);
101+
assert_eq!(map.contains_key(1), false);
102+
103+
assert_eq!(map.remove(0), Some(0));
104+
assert_eq!(map.contains_key(0), false);
105+
assert_eq!(map.contains_key(1), false);
106+
}
107+
108+
#[test]
109+
fn test_len() {
110+
let mut map = RudyMap::<u32, u32>::new();
111+
assert_eq!(map.len(), 0);
112+
assert_eq!(map.is_empty(), true);
113+
114+
assert_eq!(map.insert(0, 0), None);
115+
assert_eq!(map.len(), 1);
116+
assert_eq!(map.is_empty(), false);
80117

81-
#[test]
82-
fn test_insert_get_2() {
83-
let mut map = RudyMap::<usize, usize>::new();
84-
map.insert(0usize, 10usize);
85-
map.insert(1usize, 20usize);
86-
assert_eq!(map.get(0), Some(&10));
87-
assert_eq!(map.get(1), Some(&20));
118+
assert_eq!(map.insert(1, 1), None);
119+
assert_eq!(map.len(), 2);
120+
assert_eq!(map.is_empty(), false);
121+
122+
assert_eq!(map.insert(0, 2), Some(0));
123+
assert_eq!(map.len(), 2);
124+
assert_eq!(map.is_empty(), false);
125+
126+
assert_eq!(map.remove(0), Some(2));
127+
assert_eq!(map.len(), 1);
128+
assert_eq!(map.is_empty(), false);
129+
130+
assert_eq!(map.remove(1), Some(1));
131+
assert_eq!(map.len(), 0);
132+
assert_eq!(map.is_empty(), true);
133+
}
134+
135+
#[test]
136+
fn test_get_mut() {
137+
let mut map = RudyMap::<u32, u32>::new();
138+
assert!(map.get(0).is_none());
139+
assert!(map.get_mut(0).is_none());
140+
141+
assert_eq!(map.insert(0, 0), None);
142+
assert_eq!(map.get(0), Some(&0));
143+
assert_eq!(map.get_mut(0), Some(&mut 0));
144+
assert_eq!(map.get(1), None);
145+
assert_eq!(map.get_mut(1), None);
146+
147+
*map.get_mut(0).unwrap() += 42;
148+
assert_eq!(map.get(0), Some(&42));
149+
assert_eq!(map.get_mut(0), Some(&mut 42));
150+
151+
map.remove(0);
152+
}
88153
}

0 commit comments

Comments
 (0)