OLD | NEW |
---|---|
(Empty) | |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "courgette/base_test_unittest.h" | |
6 | |
7 #include <string> | |
8 | |
9 #include "base/basictypes.h" | |
10 #include "courgette/courgette.h" | |
11 #include "courgette/streams.h" | |
12 | |
13 class VersioningTest : public BaseTest { | |
14 public: | |
15 void TestApplyingOldPatch(const char* src_file, | |
16 const char* patch_file, | |
Paweł Hajdan Jr.
2011/10/19 08:46:39
nit: Indentation is off.
| |
17 const char* expected_file) const; | |
18 }; | |
19 | |
20 void VersioningTest::TestApplyingOldPatch(const char* src_file, | |
21 const char* patch_file, | |
22 const char* expected_file) const { | |
23 | |
Paweł Hajdan Jr.
2011/10/19 08:46:39
nit: Remove empty line.
| |
24 std::string old_buffer = FileContents(src_file); | |
25 std::string new_buffer = FileContents(patch_file); | |
26 std::string expected_buffer = FileContents(expected_file); | |
27 | |
28 courgette::SourceStream old_stream; | |
29 courgette::SourceStream patch_stream; | |
30 old_stream.Init(old_buffer); | |
31 patch_stream.Init(new_buffer); | |
32 | |
33 courgette::SinkStream generated_stream; | |
34 | |
35 courgette::Status status = | |
36 courgette::ApplyEnsemblePatch(&old_stream, | |
37 &patch_stream, | |
38 &generated_stream); | |
39 | |
40 EXPECT_EQ(status, courgette::C_OK); | |
41 | |
42 size_t expected_length = expected_buffer.size(); | |
43 size_t generated_length = generated_stream.Length(); | |
44 | |
45 EXPECT_EQ(generated_length, expected_length); | |
46 EXPECT_EQ(0, memcmp(generated_stream.Buffer(), | |
47 expected_buffer.c_str(), | |
48 expected_length)); | |
49 } | |
50 | |
51 | |
52 TEST_F(VersioningTest, All) { | |
53 TestApplyingOldPatch("setup1.exe", "setup1-setup2.v1.patch", "setup2.exe"); | |
54 | |
55 // We also need a way to test that newly generated patches are appropriately | |
56 // applicable by older clients... not sure of the best way to do that. | |
57 } | |
OLD | NEW |