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

Side by Side Diff: courgette/versioning_unittest.cc

Issue 8252011: Add a basic backwards compatibility unittest. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Fix file listings to fix windows build Created 9 years, 2 months 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 | Annotate | Revision Log
OLDNEW
(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,
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
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 }
OLDNEW
« courgette/image_info_unittest.cc ('K') | « courgette/image_info_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698