[go: nahoru, domu]

Fix WebDatabase golden files.

With every new version of the WebDatabase, an SQL file of the previous
version if supported to be created. This is used in the migration tests,
to ensure that migrating from version x -> current results in the same
database as creating it from scratch.
However, oftentimes this is not done with care. In several cases,
version_x.sql == version_(x-1).sql, defeating the purpose of the tests.
In other cases, version_x.sql only reflects some of the changes of
version x.

This usually doesn't cause the unit tests to break:
- If the indicated version in the SQL file is lower than it's supposed
  to be, the older migration logic is run, effectively migrating the
  table to the version the file is supposed to represent.
- AutofillTable (seemingly the most upgraded WebDatabase) initializes
  tables conditionally. E.g. if (!table exists) create. Thus, failing to
  create a table in the SQL file usually doesn't cause problems.

These changes are made:
- Version 87, 89, 91, 92, 95, 96 and 102 contain a version number
  smaller than the version they are supposed to represent and miss some
  or all of the changes of their respective version.
  This is fixed by changing the version number and making the necessary
  changes to the create table statements.
- Version 102 didn't add the autofill_profile_birthdates table that was
  created in version 101. All subsequent version files don't include it
  either, presumably because they were created by modifying the previous
  version file.
  This is fixed by adding the table in all version >= 102 files.
- An INSERT INTO statement appeared in version 88, and disappeared again
  in version 98. This presumably happened because someone created the
  schema by dumping the database and forgot to remove it.
  This insert is removed, as the golden files are supposed to represent
  the schema of the database only.
- (Some newlines at the end of some file are added. Newlines at the
   end of the SQL files are inconsistent and my editor decided to add
   some)

This is a (very late, sorry) follow-up to this discussion: https://chromium-review.googlesource.com/c/chromium/src/+/3941805/comment/07b0cadb_3552e487/

Bug: 1007974
Change-Id: I2a7614799e2571516587b26ccaf72514c32deec0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4521341
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Commit-Queue: Florian Leimgruber <fleimgruber@google.com>
Reviewed-by: Peter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1142180}
21 files changed
tree: 33b43b31bbc99a6571ed88e850a571fe5856de6c
  1. android_webview/
  2. apps/
  3. ash/
  4. base/
  5. build/
  6. build_overrides/
  7. buildtools/
  8. cc/
  9. chrome/
  10. chromecast/
  11. chromeos/
  12. codelabs/
  13. components/
  14. content/
  15. courgette/
  16. crypto/
  17. dbus/
  18. device/
  19. docs/
  20. extensions/
  21. fuchsia_web/
  22. gin/
  23. google_apis/
  24. google_update/
  25. gpu/
  26. headless/
  27. infra/
  28. ios/
  29. ipc/
  30. media/
  31. mojo/
  32. native_client_sdk/
  33. net/
  34. pdf/
  35. ppapi/
  36. printing/
  37. remoting/
  38. rlz/
  39. sandbox/
  40. services/
  41. skia/
  42. sql/
  43. storage/
  44. styleguide/
  45. testing/
  46. third_party/
  47. tools/
  48. ui/
  49. url/
  50. weblayer/
  51. .clang-format
  52. .clang-tidy
  53. .eslintrc.js
  54. .git-blame-ignore-revs
  55. .gitattributes
  56. .gitignore
  57. .gn
  58. .mailmap
  59. .rustfmt.toml
  60. .vpython3
  61. .yapfignore
  62. ATL_OWNERS
  63. AUTHORS
  64. BUILD.gn
  65. CODE_OF_CONDUCT.md
  66. codereview.settings
  67. DEPS
  68. DIR_METADATA
  69. LICENSE
  70. LICENSE.chromium_os
  71. OWNERS
  72. PRESUBMIT.py
  73. PRESUBMIT_test.py
  74. PRESUBMIT_test_mocks.py
  75. README.md
  76. WATCHLISTS
README.md

Logo Chromium

Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.

The project's web site is https://www.chromium.org.

To check out the source code locally, don't use git clone! Instead, follow the instructions on how to get the code.

Documentation in the source is rooted in docs/README.md.

Learn how to Get Around the Chromium Source Code Directory Structure .

For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.

If you found a bug, please file it at https://crbug.com/new.