This repository has been archived by the owner on Mar 8, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 10
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix xamarin-android run-api-compatibility-tests
Context: dotnet/android#1089 What is the purpose of the xamarin-android-api-compatibility repo? To ensure that we don't accidentally break API, both for the latest supported API level, and *between* API level binding assemblies. How's that working out for us? It could be better. Commit e353872 was due to a discovery that `mono-api-html` behavior had changed: it *used* to emit separate "Removed" and "Added" declarations whenever a method was changed. Then it started emitting "Modified" sections, but we weren't aware of this change. The result was an [accidental API break][pr-771], and a change to start looking for `data-is-breaking` instead of `>Removed`. [pr-771]: dotnet/android#771 (comment) *Then* we learned that `make check-inter-api-level` was broken, due to bad `test` logic. This was fixed in 6dfba92. The problem is that xamarin-android has not been able to use [xamarin-android-api-compatibility/master][pr-1078] since 6dfba92 has been merged, because it found [inter-API level breakage][inter-break] that we haven't been able to work around, e.g.: [pr-1078]: dotnet/android#1078 [inter-break]: dotnet/android#1078 (comment) <h3>Type Changed: Android.Preferences.CheckBoxPreference</h3> Modified base type: <span class='removed removed-inline removed-breaking-inline'>Android.Preferences.Preference</span> <span class='added '>Android.Preferences.TwoStatePreference</span> The "obvious" solution would have been to use the existing `inter-api-extra*` files/mechanism to ignore the changes which kept `make check-inter-api-level` from succeeding, but `mono-api-html` didn't provide a mechanism to ignore all of those changes. Doh! The fix? [Improve `mono-api-html` so it can ignore more][api-ignore] API artifacts. (Additionally, improve `mono-api-html` so that we can "scope" what changes we're ignoring, so that e.g. `mono-api-html -r` can specify the *type* that the ignore should apply to, and not be matched against *every member in the assembly*.) [api-ignore]: mono/mono@de4729f With that infrastructural change in place, update the `inter-api-extra*` files so that the acceptable changes are ignored, thus allowing `make check` to run w/o error on xamarin-android/master. Additionally: * The updated `mono-api-html` supports response files. Update the `mono-api-html` invocation to provide the `inter-api-extra*` files as response files, instead of `cat`ing the `inter-api-extra*` files. Eventually, `mono-api-html` may support comments in response files, which would allow us to use them. * Update `reference/Mono.Android.xml` for `ChoiceMode`. Commit 6874e3f updated `Android.Widget.ListView` to use `ChoiceMode` instead of `int` for many of the constants. This was inadvertently "reverted"/overwrritten in bb8630a. * Add support for a new `$(HTML_OUTPUT_DIR)` make variable. If set, `mono-api-html`-generated HTML files will be written into the `$(HTML_OUTPUT_DIR)` directory.
- Loading branch information
Showing
8 changed files
with
132 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
-r "^Android.Preferences.CheckBoxPreference: Modified base type: 'Android.Preferences.Preference' to 'Android.Preferences.TwoStatePreference'" | ||
-r "^Android.Views.Accessibility.AccessibilityEvent: Modified base type: 'Java.Lang.Object' to 'Android.Views.Accessibility.AccessibilityRecord'" | ||
-r "^Android.Text.Method.ArrowKeyMovementMethod: Modified base type: 'Java.Lang.Object' to 'Android.Text.Method.BaseMovementMethod'" | ||
-r "^Android.Text.Method.ScrollingMovementMethod: Modified base type: 'Java.Lang.Object' to 'Android.Text.Method.BaseMovementMethod'" | ||
-r "^Android.Text.ClipboardManager: Modified properties: public bool HasText { get; }" | ||
-r "^Android.Text.ClipboardManager: Modified properties: public Java.Lang.ICharSequence TextFormatted { get; set; }" | ||
-r "^Android.Views.InputEvent: Modified properties: public int DeviceId { get; }" | ||
-r "^Android.Views.InputEvent: Modified properties: public InputSourceType Source { get; }" | ||
-r "^Dalvik.SystemInterop.DexClassLoader: Modified base type: 'Java.Lang.ClassLoader' to 'Dalvik.SystemInterop.BaseDexClassLoader'" | ||
-r "^Dalvik.SystemInterop.PathClassLoader: Modified base type: 'Java.Lang.ClassLoader' to 'Dalvik.SystemInterop.BaseDexClassLoader'" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,5 @@ | ||
-r 'public bool FitsSystemWindows \(\);' | ||
-r "^Android.Views.View: Removed methods: public bool FitsSystemWindows \(\);" | ||
-r "Android.OS.Vibrator: Modified properties: public bool HasVibrator { get; }" | ||
-r "Android.OS.Vibrator: Modified methods: public virtual void Cancel \(\);" | ||
-r "Android.OS.Vibrator: Modified methods: public virtual void Vibrate \(long\)" | ||
-r "Android.OS.Vibrator: Modified methods: public virtual void Vibrate \(long\[\], int\)" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
-r "^Android.Views.Animations.AccelerateDecelerateInterpolator: Modified base type: 'Java.Lang.Object' to 'Android.Views.Animations.BaseInterpolator'" | ||
-r "^Android.Views.Animations.AccelerateInterpolator: Modified base type: 'Java.Lang.Object' to 'Android.Views.Animations.BaseInterpolator'" | ||
-r "^Android.Views.Animations.AnticipateInterpolator: Modified base type: 'Java.Lang.Object' to 'Android.Views.Animations.BaseInterpolator'" | ||
-r "^Android.Views.Animations.AnticipateOvershootInterpolator: Modified base type: 'Java.Lang.Object' to 'Android.Views.Animations.BaseInterpolator'" | ||
-r "^Android.Views.Animations.BounceInterpolator: Modified base type: 'Java.Lang.Object' to 'Android.Views.Animations.BaseInterpolator'" | ||
-r "^Android.Views.Animations.CycleInterpolator: Modified base type: 'Java.Lang.Object' to 'Android.Views.Animations.BaseInterpolator'" | ||
-r "^Android.Views.Animations.DecelerateInterpolator: Modified base type: 'Java.Lang.Object' to 'Android.Views.Animations.BaseInterpolator'" | ||
-r "^Android.Views.Animations.LinearInterpolator: Modified base type: 'Java.Lang.Object' to 'Android.Views.Animations.BaseInterpolator'" | ||
-r "^Android.Views.Animations.OvershootInterpolator: Modified base type: 'Java.Lang.Object' to 'Android.Views.Animations.BaseInterpolator'" | ||
-r "^Android.Views.Animations.PathInterpolator: Modified base type: 'Java.Lang.Object' to 'Android.Views.Animations.BaseInterpolator'" | ||
-r "^Android.Webkit.CookieManager: Modified properties: public bool HasCookies { get; }" | ||
-r "^Android.Webkit.CookieManager: Modified methods: public virtual bool AcceptCookie \(\);" | ||
-r "^Android.Webkit.CookieManager: Modified methods: public virtual bool AcceptThirdPartyCookies \(WebView\);" | ||
-r "^Android.Webkit.CookieManager: Modified methods: public virtual void Flush \(\);" | ||
-r "^Android.Webkit.CookieManager: Modified methods: public virtual string GetCookie \(string\);" | ||
-r "^Android.Webkit.CookieManager: Modified methods: public virtual void RemoveAllCookie \(\);" | ||
-r "^Android.Webkit.CookieManager: Modified methods: public virtual void RemoveAllCookies \(IValueCallback\);" | ||
-r "^Android.Webkit.CookieManager: Modified methods: public virtual void RemoveExpiredCookie \(\);" | ||
-r "^Android.Webkit.CookieManager: Modified methods: public virtual void RemoveSessionCookie \(\);" | ||
-r "^Android.Webkit.CookieManager: Modified methods: public virtual void RemoveSessionCookies \(IValueCallback\);" | ||
-r "^Android.Webkit.CookieManager: Modified methods: public virtual void SetAcceptCookie \(bool\);" | ||
-r "^Android.Webkit.CookieManager: Modified methods: public virtual void SetAcceptThirdPartyCookies \(WebView, bool\);" | ||
-r "^Android.Webkit.CookieManager: Modified methods: public virtual void SetCookie \(string, string\);" | ||
-r "^Android.Webkit.CookieManager: Modified methods: public virtual void SetCookie \(string, string, IValueCallback\);" | ||
-r "^Android.Webkit.WebBackForwardList: Modified properties: public int CurrentIndex { get; }" | ||
-r "^Android.Webkit.WebBackForwardList: Modified properties: public WebHistoryItem CurrentItem { get; }" | ||
-r "^Android.Webkit.WebBackForwardList: Modified properties: public int Size { get; }" | ||
-r "^Android.Webkit.WebBackForwardList: Modified methods: public virtual WebHistoryItem GetItemAtIndex \(int\);" | ||
-r "^Android.Webkit.WebHistoryItem: Modified properties: public Android.Graphics.Bitmap Favicon { get; }" | ||
-r "^Android.Webkit.WebHistoryItem: Modified properties: public string OriginalUrl { get; }" | ||
-r "^Android.Webkit.WebHistoryItem: Modified properties: public string Title { get; }" | ||
-r "^Android.Webkit.WebHistoryItem: Modified properties: public string Url { get; }" | ||
-r "^Android.Webkit.WebIconDatabase: Modified methods: public virtual void Close \(\);" | ||
-r "^Android.Webkit.WebIconDatabase: Modified methods: public virtual void Open \(string\);" | ||
-r "^Android.Webkit.WebIconDatabase: Modified methods: public virtual void ReleaseIconForPageUrl \(string\);" | ||
-r "^Android.Webkit.WebIconDatabase: Modified methods: public virtual void RemoveAllIcons \(\);" | ||
-r "^Android.Webkit.WebIconDatabase: Modified methods: public virtual void RequestIconForPageUrl \(string, WebIconDatabase.IIconListener\);" | ||
-r "^Android.Webkit.WebIconDatabase: Modified methods: public virtual void RetainIconForPageUrl \(string\);" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public bool AllowContentAccess { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public bool AllowFileAccess { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public bool BlockNetworkImage { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public bool BlockNetworkLoads { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public bool BuiltInZoomControls { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public CacheModes CacheMode { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public string CursiveFontFamily { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public bool DatabaseEnabled { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public string DatabasePath { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public int DefaultFixedFontSize { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public int DefaultFontSize { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public string DefaultTextEncodingName { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public WebSettings.ZoomDensity DefaultZoom { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public bool DisplayZoomControls { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public bool DomStorageEnabled { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public string FantasyFontFamily { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public string FixedFontFamily { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public bool JavaScriptCanOpenWindowsAutomatically { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public bool JavaScriptEnabled { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public bool LightTouchEnabled { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public bool LoadWithOverviewMode { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public bool LoadsImagesAutomatically { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public bool MediaPlaybackRequiresUserGesture { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public int MinimumFontSize { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public int MinimumLogicalFontSize { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public string SansSerifFontFamily { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public bool SaveFormData { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public bool SavePassword { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public string SerifFontFamily { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public string StandardFontFamily { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public int TextZoom { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public bool UseWideViewPort { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified properties: public string UserAgentString { get; set; }" | ||
-r "^Android.Webkit.WebSettings: Modified methods: public virtual bool EnableSmoothTransition \(\);" | ||
-r "^Android.Webkit.WebSettings: Modified methods: public virtual WebSettings.LayoutAlgorithm GetLayoutAlgorithm \(\);" | ||
-r "^Android.Webkit.WebSettings: Modified methods: public virtual WebSettings.PluginState GetPluginState \(\);" | ||
-r "^Android.Webkit.WebSettings: Modified methods: public virtual void SetAppCacheEnabled \(bool\);" | ||
-r "^Android.Webkit.WebSettings: Modified methods: public virtual void SetAppCacheMaxSize \(long\);" | ||
-r "^Android.Webkit.WebSettings: Modified methods: public virtual void SetAppCachePath \(string\);" | ||
-r "^Android.Webkit.WebSettings: Modified methods: public virtual void SetEnableSmoothTransition \(bool\);" | ||
-r "^Android.Webkit.WebSettings: Modified methods: public virtual void SetGeolocationDatabasePath \(string\);" | ||
-r "^Android.Webkit.WebSettings: Modified methods: public virtual void SetGeolocationEnabled \(bool\);" | ||
-r "^Android.Webkit.WebSettings: Modified methods: public virtual void SetLayoutAlgorithm \(WebSettings.LayoutAlgorithm\);" | ||
-r "^Android.Webkit.WebSettings: Modified methods: public virtual void SetNeedInitialFocus \(bool\);" | ||
-r "^Android.Webkit.WebSettings: Modified methods: public virtual void SetPluginState \(WebSettings.PluginState\);" | ||
-r "^Android.Webkit.WebSettings: Modified methods: public virtual void SetRenderPriority \(WebSettings.RenderPriority\);" | ||
-r "^Android.Webkit.WebSettings: Modified methods: public virtual void SetSupportMultipleWindows \(bool\);" | ||
-r "^Android.Webkit.WebSettings: Modified methods: public virtual void SetSupportZoom \(bool\);" | ||
-r "^Android.Webkit.WebSettings: Modified methods: public virtual bool SupportMultipleWindows \(\);" | ||
-r "^Android.Webkit.WebSettings: Modified methods: public virtual bool SupportZoom \(\);" | ||
-r "^Android.Webkit.WebViewDatabase: Modified properties: public bool HasFormData { get; }" | ||
-r "^Android.Webkit.WebViewDatabase: Modified properties: public bool HasHttpAuthUsernamePassword { get; }" | ||
-r "^Android.Webkit.WebViewDatabase: Modified properties: public bool HasUsernamePassword { get; }" | ||
-r "^Android.Webkit.WebViewDatabase: Modified methods: public virtual void ClearFormData \(\);" | ||
-r "^Android.Webkit.WebViewDatabase: Modified methods: public virtual void ClearHttpAuthUsernamePassword \(\);" | ||
-r "^Android.Webkit.WebViewDatabase: Modified methods: public virtual void ClearUsernamePassword \(\);" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
-r "^Android.Graphics.Drawables.ClipDrawable: Modified base type: 'Android.Graphics.Drawables.Drawable' to 'Android.Graphics.Drawables.DrawableWrapper'" | ||
-r "^Android.Graphics.Drawables.InsetDrawable: Modified base type: 'Android.Graphics.Drawables.Drawable' to 'Android.Graphics.Drawables.DrawableWrapper'" | ||
-r "^Android.Graphics.Drawables.RotateDrawable: Modified base type: 'Android.Graphics.Drawables.Drawable' to 'Android.Graphics.Drawables.DrawableWrapper'" | ||
-r "^Android.Graphics.Drawables.ScaleDrawable: Modified base type: 'Android.Graphics.Drawables.Drawable' to 'Android.Graphics.Drawables.DrawableWrapper'" | ||
-r "^Android.App.Notification: Modified properties: public int Icon { get; set; }" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
-r "^Android.Telecom.RemoteConference: Modified properties: public int ConnectionProperties { get; }" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,4 @@ | ||
-r 'Java.Lang.Reflect.Constructor.InterfaceConsts' | ||
-r 'Java.Lang.Reflect.Method.InterfaceConsts' | ||
-r "Java.Lang.Reflect.Constructor: Modified base type: 'Java.Lang.Reflect.AccessibleObject' to 'Java.Lang.Reflect.Executable'" | ||
-r "Java.Lang.Reflect.Constructor.InterfaceConsts" | ||
-r "Java.Lang.Reflect.Method: Modified base type: 'Java.Lang.Reflect.AccessibleObject' to 'Java.Lang.Reflect.Executable'" | ||
-r "Java.Lang.Reflect.Method.InterfaceConsts" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters