autoupdate: Don't hardcode 9999
Also, use int comparison for version parts.
BUG=chromium:771236
TEST=None
Change-Id: I13bc7729f3a6b8a7f2fc3260a0f6b30a770217e0
Reviewed-on: https://chromium-review.googlesource.com/700815
Reviewed-by: Chris Sosa <sosa@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
Tested-by: Paul Hobbs <phobbs@google.com>
diff --git a/autoupdate.py b/autoupdate.py
index 552b5c2..3fb9ff4 100644
--- a/autoupdate.py
+++ b/autoupdate.py
@@ -262,7 +262,8 @@
parts = latest_version.split('-')
# If we can't get a version number from the directory, default to a high
# number to allow the update to happen
- return parts[1] if len(parts) == 3 else "9999.0.0"
+ # TODO(phobbs) refactor this.
+ return parts[1] if len(parts) == 3 else "999999.0.0"
@staticmethod
def _CanUpdate(client_version, latest_version):
@@ -272,8 +273,14 @@
client_tokens = client_version.replace('_', '').split('.')
latest_tokens = latest_version.replace('_', '').split('.')
+ def _SafeInt(part):
+ try:
+ return int(part)
+ except ValueError:
+ return part
+
if len(latest_tokens) == len(client_tokens) == 3:
- return latest_tokens > client_tokens
+ return map(_SafeInt, latest_tokens) > map(_SafeInt, client_tokens)
else:
# If the directory name isn't a version number, let it pass.
return True