Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(155)

Side by Side Diff: pkg/mdns/test/resource_record_cache.dart

Issue 1412063015: Improve resource record implementation in the mdns package. (Closed) Base URL: https://github.com/dart-lang/fletch.git@master
Patch Set: Address comments Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2015, the Fletch project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE.md file.
4
5 // Test that the resource record cache works correctly. In particular, make
6 // sure that it removes all entries for a name before inserting new records
7 // of that name.
8
9 import 'dart:io';
10
11 import 'package:expect/expect.dart';
12 import 'package:mdns/src/constants.dart' show RRType;
13 import 'package:mdns/src/native_protocol_client.dart'
14 show ResourceRecordCache;
15 import 'package:mdns/src/packet.dart';
16
17 int entries(ResourceRecordCache cache) {
18 int c = 0;
19 for (int i = 0; i < cache.size; i++) {
20 if (cache.buffer[i] != null) {
21 ++c;
22 }
23 }
24 return c;
25 }
26
27 main() {
28 testOverwrite();
29 testTimeout();
30 }
31
32 testOverwrite() {
33 InternetAddress ip1 = new InternetAddress("192.168.1.1");
34 InternetAddress ip2 = new InternetAddress("192.168.1.2");
35 int valid = new DateTime.now().millisecondsSinceEpoch + 86400 * 1000;
36
37 ResourceRecordCache cache = new ResourceRecordCache();
38
39 // Add two different records.
40 cache.updateRecords([
41 new ResourceRecord(RRType.A, "hest", ip1, valid),
42 new ResourceRecord(RRType.A, "fisk", ip2, valid)]);
43 Expect.equals(2, entries(cache));
44
45 // Update these records.
46 cache.updateRecords([
47 new ResourceRecord(RRType.A, "hest", ip1, valid),
48 new ResourceRecord(RRType.A, "fisk", ip2, valid)]);
49 Expect.equals(2, entries(cache));
50
51 // Add two records with the same name (should remove the old one
52 // with that name only.)
53 cache.updateRecords([
54 new ResourceRecord(RRType.A, "hest", ip1, valid),
55 new ResourceRecord(RRType.A, "hest", ip2, valid)]);
56 Expect.equals(3, entries(cache));
57
58 // Overwrite the two cached entries with one with the same name.
59 cache.updateRecords([
60 new ResourceRecord(RRType.A, "hest", ip1, valid),
61 ]);
62 Expect.equals(2, entries(cache));
63 }
64
65 testTimeout() {
66 InternetAddress ip1 = new InternetAddress("192.168.1.1");
67 InternetAddress ip2 = new InternetAddress("192.168.1.2");
68 int valid = new DateTime.now().millisecondsSinceEpoch + 86400 * 1000;
69 int notValid = new DateTime.now().millisecondsSinceEpoch - 1;
70
71 ResourceRecordCache cache = new ResourceRecordCache();
72
73 cache.updateRecords([
74 new ResourceRecord(RRType.A, "hest", ip1, valid)
75 ]);
76 Expect.equals(1, entries(cache));
77
78 cache.updateRecords([
79 new ResourceRecord(RRType.A, "fisk", ip1, notValid)
80 ]);
81
82 var results;
83 results = [];
84 cache.lookup("hest", RRType.A, results);
85 Expect.isFalse(results.isEmpty);
86
87 results = [];
88 cache.lookup("fisk", RRType.A, results);
89 Expect.isTrue(results.isEmpty);
90 Expect.equals(1, entries(cache));
91 }
OLDNEW
« pkg/mdns/test/lookup_resolver_test.dart ('K') | « pkg/mdns/test/lookup_resolver_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698