Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright 2014 The Chromium Authors. All rights reserved. | 2 * Copyright 2014 The Chromium Authors. All rights reserved. |
| 3 * Use of this source code is governed by a BSD-style license that can be | 3 * Use of this source code is governed by a BSD-style license that can be |
| 4 * found in the LICENSE file. | 4 * found in the LICENSE file. |
| 5 */ | 5 */ |
| 6 | 6 |
| 7 // | 7 // |
| 8 // Test for resource open before PPAPI initialization. | 8 // Test for resource open before PPAPI initialization. |
| 9 // | 9 // |
| 10 | 10 |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 42 if (0 != error) { | 42 if (0 != error) { |
| 43 printf("Can't open file, error=%d", error); | 43 printf("Can't open file, error=%d", error); |
| 44 return "Can't open file"; | 44 return "Can't open file"; |
| 45 } | 45 } |
| 46 | 46 |
| 47 std::string str; | 47 std::string str; |
| 48 | 48 |
| 49 char buffer[4096]; | 49 char buffer[4096]; |
| 50 int len; | 50 int len; |
| 51 while ((len = read(desc, buffer, sizeof buffer - 1)) > 0) { | 51 while ((len = read(desc, buffer, sizeof buffer - 1)) > 0) { |
| 52 // NB: fgets does not discard the newline nor any carriage return | |
| 53 // character before that. | |
| 54 // | |
| 55 // Note that CR LF is the default end-of-line style for Windows. | |
| 56 // Furthermore, when the test_file (input data, which happens to | |
| 57 // be the nmf file) is initially created in a change list, the | |
| 58 // patch is sent to our try bots as text. This means that when | |
| 59 // the file arrives, it has CR LF endings instead of the original | |
| 60 // LF line endings. Since the expected or golden data is | |
| 61 // (manually) encoded in the HTML file's JavaScript, there will be | |
| 62 // a mismatch. After submission, the svn property svn:eol-style | |
| 63 // will be set to LF, so a clean check out should have LF and not | |
| 64 // CR LF endings, and the tests will pass without CR removal. | |
| 65 // However -- and there's always a however in long discourses -- | |
| 66 // if the nmf file is edited, say, because the test is being | |
| 67 // modified, and the modification is being done on a Windows | |
| 68 // machine, then it is likely that the editor used by the | |
| 69 // programmer will convert the file to CR LF endings. Which, | |
| 70 // unfortunatly, implies that the test will mysteriously fail | |
| 71 // again. | |
| 72 // | |
| 73 // To defend against such nonsense, we weaken the test slighty, | |
| 74 // and just strip the CR if it is present. | |
| 75 int len = strlen(buffer); | |
| 76 if (len >= 2 && buffer[len-1] == '\n' && buffer[len-2] == '\r') { | |
|
Mark Seaborn
2014/07/11 16:55:18
Removing this makes sense because the expected str
| |
| 77 buffer[len-2] = '\n'; | |
| 78 buffer[len-1] = '\0'; | |
| 79 } | |
| 80 // Null terminate. | 52 // Null terminate. |
| 81 buffer[len] = 0; | 53 buffer[len] = '\0'; |
| 82 str += buffer; | 54 str += buffer; |
| 83 } | 55 } |
| 84 | 56 |
| 85 if (str != "Test File Content") { | 57 if (str != "Test File Content") { |
| 86 printf("Wrong file content: \"%s\"\n", str.c_str()); | 58 printf("Wrong file content: \"%s\"\n", str.c_str()); |
| 87 return "Wrong file content: " + str; | 59 return "Wrong file content: " + str; |
| 88 } | 60 } |
| 89 | 61 |
| 90 return "Pass"; | 62 return "Pass"; |
| 91 } | 63 } |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 174 return new TestModule(); | 146 return new TestModule(); |
| 175 } | 147 } |
| 176 } | 148 } |
| 177 | 149 |
| 178 int main() { | 150 int main() { |
| 179 result.push_back(LoadManifestSuccess(&__nacl_irt_query)); | 151 result.push_back(LoadManifestSuccess(&__nacl_irt_query)); |
| 180 result.push_back(LoadManifestNonExistentEntry(&__nacl_irt_query)); | 152 result.push_back(LoadManifestNonExistentEntry(&__nacl_irt_query)); |
| 181 result.push_back(LoadManifestNonExistentFile(&__nacl_irt_query)); | 153 result.push_back(LoadManifestNonExistentFile(&__nacl_irt_query)); |
| 182 return PpapiPluginMain(); | 154 return PpapiPluginMain(); |
| 183 } | 155 } |
| OLD | NEW |