-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Debugging Git
First of all, Git's .exe
files should be rebuilt with debugging information, and without optimization (because gdb
has serious troubles single-stepping code compiled using -O2
for some reason). To this end:
- install the Git for Windows SDK
- Create
/usr/src/git/config.mak
with the following contents to disable compiler optimization and ASLR:
DEVELOPER=1
ifndef NDEBUG
CFLAGS := $(filter-out -O2,$(CFLAGS))
ASLR_OPTION := -Wl,--dynamicbase
BASIC_LDFLAGS := $(filter-out $(ASLR_OPTION),$(BASIC_LDFLAGS))
endif
- run
make
in/usr/src/git/
.
After that, you can run Git's executables in GDB like so:
gdb --args ./git.exe --exec-path=/usr/src/git rev-parse HEAD
Sometimes it is useful to ask the debugger to pause the program when the code path is entered that outputs an error message. The functions in Git that output error messages are error_builtin()
and die_builtin()
. So you can set the breakpoints
b error_builtin
b die_builtin
before calling run
in gdb
to stop execution at the appropriate time.
When standard input is redirected (e.g. echo "Hello" | gdb -args git ...
), gdb
will not be able to receive your commands, and therefore you cannot debug. One little trick to get around this is to insert debug statements into the C code such as:
{
int ddd = 1;
fprintf(stderr, "Waiting for gdb on pid %d", (int)getpid());
while (ddd)
sleep(1);
}
When running this (without prefixing the command with gdb -args
), it will print the process ID and then wait. To attach gdb
to this process, simply call
gdb git <pid>
then use gdb
's up
command until you are in that loop, and call set ddd = 0
and continue
after setting whatever breakpoints you want to set. Or call finish
until the point where you want to single-step (u
to single-step, s
to single-step into called functions).
The same trick also helps with debugging processes that are spawned from processes that are spawned from the main process.
When a command crashes (i.e. throws a segmentation fault), running it in gdb
as described above will stop when the command crashes. Once that is the case, you can obtain a back trace with bt
. Example:
(gdb) bt
#0 setup_git_directory_gently_1 (nongit_ok=0x0) at setup.c:846
#1 0x000000000057dfd8 in setup_git_directory_gently (nongit_ok=0x0)
at setup.c:937
#2 0x000000000057e211 in setup_git_directory () at setup.c:1014
#3 0x0000000000487bfc in cmd_rev_parse (argc=2, argv=0x1951a88, prefix=0x0)
at builtin/rev-parse.c:589
#4 0x000000000040296a in run_builtin (p=0x5fb8e8 <commands+2184>, argc=2,
argv=0x1951a88) at git.c:373
#5 0x0000000000402c8d in handle_builtin (argc=2, argv=0x1951a88) at git.c:579
#6 0x0000000000402e2a in run_argv (argcp=0x108fe00, argv=0x108fdb8)
at git.c:637
#7 0x0000000000402fb9 in cmd_main (argc=2, argv=0x1951a88) at git.c:709
#8 0x000000000049f699 in mingw_main (argc=3, argv=0x1951a80)
at common-main.c:40
#9 0x000000000049f64d in main (argc=3, argv=0x3230498) at common-main.c:25
This back trace shows which functions were called by which other functions. The inner-most code location is #0
, which was called from #1
, which was called from #2
, etc. In the example above, the main()
function called the mingw_main()
function which in turn called the cmd_main()
function, and so on, until eventually the setup_git_directory_gently()
function was called, which then called the setup_git_directory_gently_1()
function, where the execution was stopped to let you, the user, inspect the current state in the debugger.
You can inspect the source code at the current code location using the l
command (or specify a line number or even a file and a line number like so: l git.c:709
, or a function name, like so: l run_builtin
).
You can navigate between the different stack frames using up
and down
(which is confusingly the opposite direction as in the list above).
You can inspect variables' values using p <variable>
. This can be a struct, even. Example:
(gdb) p cwd
$1 = {alloc = 129, len = 30, buf = 0x3236cb8 "C:/git-sdk-64/usr/src/git"}
(gdb) p cwd.buf
$2 = 0x3236cb8 "C:/git-sdk-64/usr/src/git"
In some cases, the back trace is not helpful, though, most likely because the stack was somehow messed up. These issues are harder to debug, and require a lot of guess work and patience:
- set a breakpoint on the main function of the command you called, e.g.
cmd_rev_parse
forgit rev-parse ...
:b cmd_rev_parse
- start the debugging session:
r
- once execution stops in the main function, try to determine a reasonable next breakpoint by looking at the source:
l
(subsequentl
commands will list more,l <lineno>
will list from a given line number) - then set another breakpoint and continue:
b <lineno>
and thenc
- If the crash occurs in between those breakpoints, try to figure out a break point between the last two, i.e. go back to step 3 above (with the difference that the debugging session has to be restarted with
r
instead of continued withc
). - If there is actually no line between the two latest breakpoints, i.e. if the crash occurs in a function that was called from the line on which rests the second-latest breakpoint, restart with
r
and then step into that function usings
. Then repeat as above. - If the crash does not occur between those two breakpoints, disable the first breakpoint (so that subsequent restarts of the debugging session will not stop unnecessarily):
dis <number>
(where<number>
is the breakpoint's number that was printed when you set it viab <function-or-line>
. - Then continue with step 3 above.
GDB (since version 10.1) can use the Pygments Python library, if installed, to syntax-highlight source code, both in the output of the list
command as well as in the TUI. To benefit from that feature, simply install Pygments using pacman
:
pacman -Syy mingw-w64-x86_64-python-pygments
First, install emacs
and run it:
$ pacman -Sy mingw64/mingw-w64-x86_64-emacs
$ emacs
Then type: ESC-x gdb RETURN
It should then prompt you to enter the name of an executable. Give it the full path to the actual executable (such as C:/git-sdk-64/mingw64/libexec/git-core/git-test-dump-index.exe
or just git.exe
if you want to debug a builtin).
You should get the usual gdb startup banner. At the first prompt, type pwd
. For some reason it starts up in the exe's directory rather than the CWD of the shell. So you can cd to the root of the repo you want to work with.
For help, type help
.
Type apropos word
to search for commands related to "word"...
Reading symbols from c:/git-sdk-64/mingw64/libexec/git-core/git-test-dump-index.exe...done.
(gdb) pwd
Working directory c:\git-sdk-64\mingw64\libexec\git-core.
(gdb) cd e:/testrepo
Working directory e:\testrepo.
(gdb) pwd
Working directory e:\testrepo.
(gdb) b main
Breakpoint 1 at 0x4018da: file test-dump-index.c, line 57.
(gdb) r
Starting program: c:\git-sdk-64\mingw64\libexec\git-core\git-test-dump-index.exe
[New Thread 13028.0x3a50]
Breakpoint 1, 0x00000000004018da in main (argc=1, argv=0x6e0498) at test-dump-index.c:57
57 int main(int ac, char **av)
You can then debug like normal (for gdb), but with a split screen and the source in the other panel. there are some toolbar helpers and you can set breakpoints using the left gutter.
Screenshot:
` ![1000202453](https://github.com/user-attachments/assets/7fef99c3-f4a0-46e8-8081-7c52fa4da12b) ![1000202450](https://* _**``**_github.com/user-attachments/assets/c06bda90-ac82-437a-b72b-6ee7cf737ccc) ![1000203991](https://github.com/user-attachments/assets/7124b5e3-1ffd-4bfa-81da-ddf46a5a116a) ![1000202451](https://github.com/user-attachments/assets/3e39c3f8-035e-4e11-9a1b-f61bb6611c0c) ![1000204293](https://github.com/user-attachments/assets/8e4f81a8-03ec-4bae-8f0e-b7dd26f08401) ![1000204295](https://github.com/user-attachments/assets/6b48ca53-65db-42e2-a35b-e00da4ba70f9) ![1000189465](https://github.com/user-attachments/assets/5ee1ef96-51be-44c2-9b99-c9351f835ec0) ![1000189464](https://github.com/user-attachments/assets/aeb2bf71-1654-4f54-9098-0d24a0fd81ae) ![1000189466](https://github.com/user-attachments/assets/0dccf3c3-ebab-4582-92f2-dcceb192966c) ![1000189468](https://github.com/user-attachments/assets/56de40f8-a14c-42da-815a-c623b9b3d09e) `This is the _Git for Windows_ wiki. See [how-to-participate](https://gitforwindows.org/governance-model.html). Mariquita | 1/2/2024 3.2 a 8.7 Actualización de funciones de los koalas | 2/1/2024 3.2 a 8.6 Koala | 1/1/2024 3.2 a 8.5 Medusa | 1/3/2023 3.2 a 8.4 Iguana | 2023.2.1 3.2-8.3 Hedgehog | 2023.1.1 3.2-8.2 Giraffe | 2022.3.1 3.2-8.1 Flamingo | 2022.2.1 3.2-8.0https://developers.google.com/android/images?hl=es-419#instructionspágina de descargas de Pixelhttps://www.jetbrains.com/idea/features/#web-developmenthttps://developer.android.com/about/versions/15/get?hl=es-41% adb shell
emu64a:/ $ emu64a:/ $ exit % adb root restarting adbd as root % adb shell emu64a:/ # emu64a:/ # exit % adb unroot restarting adbd as non root % adb shell emu64a:/ $ emu64a:/ $ exit %# Start the server
- ./go debug-server &https://developer.android.com/training/testing/espresso/recipes?hl=es-419https://developer.android.com/studio?hl=es-419fastboot flashing unlocksdkmanagerhttps://square.github.io/okio/3.x/okio/okio/okio/-lock/index.html#853407547%2FClasslikes%2F673231700<dependency>
- <groupId>org.apache.commons</groupId> <artifactId>commons-parent</artifactId> <version>77</version>
- </dependency>kotlin.native.concurrent.InvalidMutabilityException: mutation attempt of frozen okio.fakefilesystem.FakeFileSystem.Element.File@d5c2b1e8
- at kotlin.Throwable#<init>(/Users/teamcity2/buildAgent/work/11ac87a349af04d5/runtime/src/main/kotlin/kotlin/Throwable.kt:23) at kotlin.Exception#<init>(/Users/teamcity2/buildAgent/work/11ac87a349af04d5/runtime/src/main/kotlin/kotlin/Exceptions.kt:23) at kotlin.RuntimeException#<init>(/Users/teamcity2/buildAgent/work/11ac87a349af04d5/runtime/src/main/kotlin/kotlin/Exceptions.kt:34) at kotlin.native.concurrent.InvalidMutabilityException#<init>(/Users/teamcity2/buildAgent/work/11ac87a349af04d5/runtime/src/main/kotlin/kotlin/native/concurrent/Freezing.kt:22) at <global>.ThrowInvalidMutabilityException(/Users/teamcity2/buildAgent/work/11ac87a349af04d5/runtime/src/main/kotlin/kotlin/native/concurrent/Internal.kt:93) at <global>.MutationCheck(Unknown Source) at okio.fakefilesystem.FakeFileSystem.Element.<set-lastAccessedAt>#internal(/Users/jwilson/Projects/okio/okio-fakefilesystem/src/commonMain/kotlin/okio/fakefilesystem/FakeFileSystem.kt:416) at okio.fakefilesystem.FakeFileSystem.Element.access#internal(/Users/jwilson/Projects/okio/okio-fakefilesystem/src/commonMain/kotlin/okio/fakefilesystem/FakeFileSystem.kt:442) at okio.fakefilesystem.FakeFileSystem.open#internal(/Users/jwilson/Projects/okio/okio-fakefilesystem/src/commonMain/kotlin/okio/fakefilesystem/FakeFileSystem.kt:315) at okio.fakefilesystem.FakeFileSystem#openReadOnly(/Users/jwilson/Projects/okio/okio-fakefilesystem/src/commonMain/kotlin/okio/fakefilesystem/FakeFileSystem.kt:260) at okio.fakefilesystem.FakeFileSystem#source(/Users/jwilson/Projects/okio/okio-fakefilesystem/src/commonMain/kotlin/okio/fakefilesystem/FakeFileSystem.kt:241) **** at kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(/Users/teamcity2/buildAgent/work/11ac87a349af04d5/runtime/src/main/kotlin/kotlin/coroutines/ContinuationImpl.kt:30) at kotlinx.coroutines.DispatchedTask#run(/opt/buildAgent/work/44ec6e850d5c63f0/kotlinx-coroutines-core/common/src/internal/DispatchedTask.kt:106) at kotlinx.coroutines.EventLoopImplBase#processNextEvent(/opt/buildAgent/work/44ec6e850d5c63f0/kotlinx-coroutines-core/common/src/EventLoop.common.kt:277) at kotlinx.coroutines#runEventLoop(/opt/buildAgent/work/44ec6e850d5c63f0/kotlinx-coroutines-core/native/src/Builders.kt:80) at kotlinx.coroutines.WorkerCoroutineDispatcherImpl.start$lambda-0#internal(/opt/buildAgent/work/44ec6e850d5c63f0/kotlinx-coroutines-core/native/src/Workers.kt:49) at kotlinx.coroutines.WorkerCoroutineDispatcherImpl.$start$lambda-0$FUNCTION_REFERENCE$35.invoke#internal(/opt/buildAgent/work/44ec6e850d5c63f0/kotlinx-coroutines-core/native/src/Workers.kt:47) at kotlinx.coroutines.WorkerCoroutineDispatcherImpl.$start$lambda-0$FUNCTION_REFERENCE$35.$<bridge-UNN>invoke(/opt/buildAgent/work/44ec6e850d5c63f0/kotlinx-coroutines-core/native/src/Workers.kt:47) at <global>.WorkerLaunchpad(/Users/teamcity2/buildAgent/work/11ac87a349af04d5/runtime/src/main/kotlin/kotlin/native/concurrent/Internal.kt:70) at <global>._ZN6Worker19processQueueElementEb(Unknown Source) at <global>._ZN12_GLOBAL__N_113workerRoutineEPv(Unknown Source) at <global>._pthread_start(Unknown Source) at <global>.thread_start(Unknown Source)id>https://material.io/blog/jetpack-compose-beta</id>
<summary>Exploring the first beta release of Android’s modern, declarative toolkit for UI development</summary> <updated>2021-02-24T09:30:00Z</updated> </entry> <entry> <title>Building a Dark Theme for Google Fonts</title> <link href="https://material.io/blog/google-fonts-dark-theme"/> <id>https://material.io/blog/google-fonts-dark-theme</id> <summary>How Google Fonts implemented a dark theme in its Angular App</summary> <updated>2021-02-22T13:00:00Z</updated> </entry> <entry> <title>Material Design Components for Android 1.3.0</title> <link href="https://material.io/blog/android-stable-release-1-3-0"/> <id>https://material.io/blog/android-stable-release-1-3-0</id> <summary>ProgressIndicator, MaterialTimePicker, i18n / l10n, and more</summary> <updated>2021-02-18T13:00:00Z</updated> </entry> <entry> <title>Material Design for WordPress</title> <link href="https://material.io/blog/material-design-wordpress-plugin"/> <id>https://mater…"XML file does not appear to have any style information associated with it. The document tree is shown below. <feed xmlns="http://www.w3.org/2005/Atom"> <title>Material.io - Material Design</title> <link href="https://material.io"/> <link rel="self" href="https://material.io/feed.xml"/> <author> <name>Material Design</name> </author> <id>https://material.io/</id> <updated>2024-09-10T13:00:00Z</updated> <entry> <title>Material Design 3 for Compose version 1.3</title> <link href="https://material.io/blog/material-3-compose-1-3"/> <id>https://material.io/blog/material-3-compose-1-3</id> <summary>Exploring the 1.3 release of Material Design 3 for Compose</summary> <updated>2024-09-10T13:00:00Z</updated> </entry> <entry> <title>What does your UI say to your users?</title> <link href="https://material.io/blog/testing-material-3"/> <id>https://material.io/blog/testing-material-3</id> <summary>How we tested M2 and M3 interfaces to understand the impact of visual changes</summary> <updated>2024-05-13T13:00:00Z</updated> </entry> <entry> <title>Material Design Components for Android 1.11.0 and 1.12.0</title> <link href="https://material.io/blog/android-stable-release-1-12-0"/> <id>https://material.io/blog/android-stable-release-1-12-0</id> <summary>New color options and carousel refinements</summary> <updated>2024-05-08T13:00:00Z</updated> </entry> <entry> <title>Using the Gemini app with Material Design 3</title> <link href="https://material.io/blog/how-to-gemini-app-compose-material-design-3"/> <id>https://material.io/blog/how-to-gemini-app-compose-material-design-3</id> <summary>Example prompts for designers and developers</summary> <updated>2024-05-07T13:00:00Z</updated> </entry> <entry> <title>Material Design at Google I/O ‘24</title> <link href="https://material.io/blog/google-io-2024"/> <id>https://material.io/blog/google-io-2024</id> <summary>Catch the latest updates, resources, and guides at this year’s developer conference</summary> <updated>2024-04-30T13:00:00Z</updated> </entry> <entry> <title>Making it easier to get Google Fonts</title> <link href="https://material.io/blog/get-google-fonts-update"/> <id>https://material.io/blog/get-google-fonts-update</id> <summary>Website and API updates are making it simpler to get fonts and use them in your project</summary> <updated>2024-02-12T13:00:00Z</updated> </entry> <entry> <title>Material Design 3 for Compose 1.2</title> <link href="https://material.io/blog/material-3-compose-1-2"/> <id>https://material.io/blog/material-3-compose-1-2</id> <summary>Exploring the 1.2 release of Material Design 3 for Compose</summary> <updated>2024-02-07T13:00:00Z</updated> </entry> <entry> <title>An updated theming experience with Material Theme Builder 2.0</title> <link href="https://material.io/blog/material-theme-builder-2-color-match"/> <id>https://material.io/blog/material-theme-builder-2-color-match</id> <summary>Celebrating two years of MTB with a major update including Color Match</summary> <updated>2023-12-19T13:00:00Z</updated> </entry> <entry> <title>Material Design Components for Android 1.10.0</title> <link href="https://material.io/blog/android-stable-release-1-10-0"/> <id>https://material.io/blog/android-stable-release-1-10-0</id> <summary>Updates, refinements and a new way to transition between destinations</summary> <updated>2023-10-25T13:00:00Z</updated> </entry> <entry> <title>The new Google Fonts: find what you’re looking for</title> <link href="https://material.io/blog/2023-google-fonts-redesign"/> <id>https://material.io/blog/2023-google-fonts-redesign</id> <summary>A redesigned Google Fonts website helps you find the right fonts and icons for your project</summary> <updated>2023-09-07T13:00:00Z</updated> </entry> <entry> <title>Video: Fonts are software</title> <link href="https://material.io/blog/fonts-are-software-video"/> <id>https://material.io/blog/fonts-are-software-video</id> <summary>Catch up on Google Fonts' talk at Figma Config 2023</summary> <updated>2023-08-24T13:00:00Z</updated> </entry> <entry> <title>The designer’s toolbox</title> <link href="https://material.io/blog/designer-toolbox-figma-android-studio-relay"/> <id>https://material.io/blog/designer-toolbox-figma-android-studio-relay</id> <summary>How Material resources work together, from customizing the design kit to Android Studio and Relay</summary> <updated>2023-05-26T13:00:00Z</updated> </entry> <entry> <title>What’s new in the M3 design kit</title> <link href="https://material.io/blog/whats-new-design-kit"/> <id>https://material.io/blog/whats-new-design-kit</id> <summary>New updates make it even easier to design and prototype Material apps in Figma</summary> <updated>2023-05-19T13:00:00Z</updated> </entry> <entry> <title>Material Design Components for Android 1.9.0</title> <link href="https://material.io/blog/android-stable-release-1-9-0"/> <id>https://material.io/blog/android-stable-release-1-9-0</id> <summary>New ways to navigate in and interact with your applications</summary> <updated>2023-05-17T13:00:00Z</updated> </entry> <entry> <title>How to make your text more accessible</title> <link href="https://material.io/blog/how-to-make-text-more-accessible"/> <id>https://material.io/blog/how-to-make-text-more-accessible</id> <summary>Find all of Google Fonts’ typefaces, articles, and resources to make your text easier to read</summary> <updated>2023-05-12T13:00:00Z</updated> </entry> <entry> <title>Material Design 3 for Compose gets new components and features</title> <link href="https://material.io/blog/material-3-compose-1-1"/> <id>https://material.io/blog/material-3-compose-1-1</id> <summary>Exploring the 1.1 release of Material Design 3 for Compose</summary> <updated>2023-05-10T13:00:00Z</updated> </entry> <entry> <title>Reinventing the carousel</title> <link href="https://material.io/blog/material-3-carousel-research-design"/> <id>https://material.io/blog/material-3-carousel-research-design</id> <summary>The research and design behind the evolution of the Material 3 carousel</summary> <updated>2023-05-10T13:00:00Z</updated> </entry> <entry> <title>Material Design at I/O ‘23</title> <link href="https://material.io/blog/material-google-io23"/> <id>https://material.io/blog/material-google-io23</id> <summary>Get the latest Material 3 updates and online content at Google’s annual developer conference</summary> <updated>2023-05-01T10:00:00Z</updated> </entry> <entry> <title>Better design for bigger screens</title> <link href="https://material.io/blog/material-you-large-screens"/> <id>https://material.io/blog/material-you-large-screens</id> <summary>How Material You supports beautiful, efficient tablet and foldable experiences</summary> <updated>2023-04-29T13:00:00Z</updated> </entry> <entry> <title>Introducing Tone-based Surfaces in Material 3</title> <link href="https://material.io/blog/tone-based-surface-color-m3"/> <id>https://material.io/blog/tone-based-surface-color-m3</id> <summary>New surface color roles offer more flexibility for large screens and rich color features</summary> <updated>2023-03-23T13:00:00Z</updated> </entry> <entry> <title>New SIL Typefaces</title> <link href="https://material.io/blog/sil-typefaces"/> <id>https://material.io/blog/sil-typefaces</id> <summary>Expanding type for legibility and lesser-served languages</summary> <updated>2023-03-22T13:00:00Z</updated> </entry> <entry> <title>The Design of Readex Pro</title> <link href="https://material.io/blog/readex-pro-legibility-arabic-type-design"/> <id>https://material.io/blog/readex-pro-legibility-arabic-type-design</id> <summary>Exploring the boundaries of legibility in Arabic type</summary> <updated>2023-03-09T13:00:00Z</updated> </entry> <entry> <title>The Story of Shantell Sans</title> <link href="https://material.io/blog/shantell-martin-variable-font"/> <id>https://material.io/blog/shantell-martin-variable-font</id> <summary>How an artist created a typeface in Latin and Cyrillic</summary> <updated>2023-03-07T13:00:00Z</updated> </entry> <entry> <title>Material Design Components for Android 1.8.0</title> <link href="https://material.io/blog/android-stable-release-1-8-0"/> <id>https://material.io/blog/android-stable-release-1-8-0</id> <summary>New ways to navigate in and interact with your applications</summary> <updated>2023-02-02T13:00:00Z</updated> </entry> <entry> <title>How Ravn solves design-developer handoff with Relay</title> <link href="https://material.io/blog/relay-ravn-case-study"/> <id>https://material.io/blog/relay-ravn-case-study</id> <summary>One team’s approach to sharing design intent using Google’s new design-to-code tool</summary> <updated>2023-02-02T10:00:00Z</updated> </entry> <entry> <title>The Best of Material in 2022</title> <link href="https://material.io/blog/material-design-2022-roundup"/> <id>https://material.io/blog/material-design-2022-roundup</id> <summary>Some of Material Design’s top moments from the past year</summary> <updated>2022-12-15T13:00:00Z</updated> </entry> <entry> <title>The 24-hour Clock Design Challenge</title> <link href="https://material.io/blog/24-hour-clock-design-research"/> <id>https://material.io/blog/24-hour-clock-design-research</id> <summary>Design and research create an accessible and user-friendly time picker</summary> <updated>2022-12-01T13:00:00Z</updated> </entry> <entry> <title>Top Tips for Data Accessibility</title> <link href="https://material.io/blog/data-visualization-accessibility"/> <id>https://material.io/blog/data-visualization-accessibility</id> <summary>Six strategies for making your data visualization accessible, scalable, and helpful</summary> <updated>2022-11-08T13:00:00Z</updated> </entry> <entry> <title>Material Design at Android Developer Summit 2022</title> <link href="https://material.io/blog/material-ads-2022"/> <id>https://material.io/blog/material-ads-2022</id> <summary>Design, code, and tools: everything new in Material at this year’s ADS</summary> <updated>2022-10-24T10:00:00Z</updated> </entry> <entry> <title>Announcing Relay Alpha</title> <link href="https://material.io/blog/relay-in-alpha"/> <id>https://material.io/blog/relay-in-alpha</id> <summary>A new design-to-code workflow for Android UI</summary> <updated>2022-10-24T09:00:00Z</updated> </entry> <entry> <title>Material Design 3 for Compose is now stable</title> <link href="https://material.io/blog/material-3-compose-stable"/> <id>https://material.io/blog/material-3-compose-stable</id> <summary>Exploring the first stable release of Material Design 3 for Compose</summary> <updated>2022-10-24T08:00:00Z</updated> </entry> <entry> <title>MDC-Android Stable release 1.7.0</title> <link href="https://material.io/blog/android-stable-release-1-7-0"/> <id>https://material.io/blog/android-stable-release-1-7-0</id> <summary>with Material Design 3 shape guidance and improved a11y</summary> <updated>2022-10-20T10:00:00Z</updated> </entry> <entry> <title>Introducing the M3 design kit for Figma</title> <link href="https://material.io/blog/material-3-figma-design-kit"/> <id>https://material.io/blog/material-3-figma-design-kit</id> <summary>Jumpstart your designs with ready-to-use components and styles in Figma</summary> <updated>2022-10-18T10:00:00Z</updated> </entry> <entry> <title>Magic, utility, and redesigning Material.io</title> <link href="https://material.io/blog/material-io-redesign"/> <id>https://material.io/blog/material-io-redesign</id> <summary>Pushing visual and interactive expression in design guidelines with Material Design 3</summary> <updated>2022-10-18T10:00:00Z</updated> </entry> <entry> <title>First Batch of Color Fonts Arrives on Google Fonts</title> <link href="https://material.io/blog/color-fonts-are-here"/> <id>https://material.io/blog/color-fonts-are-here</id> <summary>Customize color palettes, add gradients, and more with COLRv1</summary> <updated>2022-09-13T09:00:00Z</updated> </entry> <entry> <title>Jamie Chung’s Artful, Abstract Photographs for Material Design</title> <link href="https://material.io/blog/jamie-chung-photography-interview"/> <id>https://material.io/blog/jamie-chung-photography-interview</id> <summary>From psychedelic bubbles to underwater plants, learn about the photos that challenge the limitations of imagery on the web</summary> <updated>2022-08-25T13:00:00Z</updated> </entry> <entry> <title>The Avatar Project: Derek Brahney</title> <link href="https://material.io/blog/derek-brahney-interview"/> <id>https://material.io/blog/derek-brahney-interview</id> <summary>What conceptual artist Derek Brahney is thinking about right now</summary> <updated>2022-07-07T13:00:00Z</updated> </entry> <entry> <title>Material Design Components for Android 1.6.1</title> <link href="https://material.io/blog/android-stable-release-1-6-1"/> <id>https://material.io/blog/android-stable-release-1-6-1</id> <summary>With color harmony and Material Design 3 refinements</summary> <updated>2022-07-07T12:59:00Z</updated> </entry> <entry> <title>From Rebranding to Readability with Atkinson Hyperlegible</title> <link href="https://material.io/blog/atkinson-hyperlegible-design"/> <id>https://material.io/blog/atkinson-hyperlegible-design</id> <summary>Distinct and modern, the Atkinson Hyperlegible typeface aims to deliver both legibility and readability</summary> <updated>2022-06-09T13:00:00Z</updated> </entry> <entry> <title>You Asked for it—Here Are Some of Our Favorite Font Pairings</title> <link href="https://material.io/blog/google-fonts-pairing-figma"/> <id>https://material.io/blog/google-fonts-pairing-figma</id> <summary>See our handpicked Google Fonts pairings in use, and start using them now in Figma</summary> <updated>2022-06-02T13:00:00Z</updated> </entry> <entry> <title>Celebrating Global Accessibility Awareness Day</title> <link href="https://material.io/blog/accessibility-awareness-day-2022"/> <id>https://material.io/blog/accessibility-awareness-day-2022</id> <summary>Resources from Material Design to help you design for everyone</summary> <updated>2022-05-19T13:00:00Z</updated> </entry> <entry> <title>Material Icons: Sehee Lee</title> <link href="https://material.io/blog/material-icons-sehee-lee-interview"/> <id>https://material.io/blog/material-icons-sehee-lee-interview</id> <summary>An interview with Senior Visual Designer leading icons and design systems for Google Fonts, Sehee Lee</summary> <updated>2022-05-11T10:00:00Z</updated> </entry> <entry> <title>Adjusting Grade for Mode</title> <link href="https://material.io/blog/readability-research"/> <id>https://material.io/blog/readability-research</id> <summary>Measuring the impact font grade has on text readability</summary> <updated>2022-05-11T09:00:00Z</updated> </entry> <entry> <title>Design for everyone</title> <link href="https://material.io/blog/m3-a11y"/> <id>https://material.io/blog/m3-a11y</id> <summary>Material Design’s latest accessibility, color, and components are featured at I/O</summary> <updated>2022-05-11T08:00:05Z</updated> </entry> <entry> <title>Join Material Design at I/O ‘22</title> <link href="https://material.io/blog/material-google-io22"/> <id>https://material.io/blog/material-google-io22</id> <summary>Get the full download on what Material Design updates you can expect at I/O this year</summary> <updated>2022-05-11T08:00:00Z</updated> </entry> <entry> <title>Roboto … But Make It Flex</title> <link href="https://material.io/blog/roboto-flex"/> <id>https://material.io/blog/roboto-flex</id> <summary>Google’s most popular font gets customizable with the launch of Roboto Flex</summary> <updated>2022-05-05T13:00:00Z</updated> </entry> <entry> <title>Introducing Material Symbols</title> <link href="https://material.io/blog/introducing-symbols"/> <id>https://material.io/blog/introducing-symbols</id> <summary>Fine-tune weight, fill, optical size, and grade with the variable icon font, available on Google Fonts</summary> <updated>2022-04-19T10:00:00Z</updated> </entry> <entry> <title>Looking for What’s Missing</title> <link href="https://material.io/blog/asset-people-3"/> <id>https://material.io/blog/asset-people-3</id> <summary>A guide to including world-building narratives in a designer’s toolkit</summary> <updated>2022-03-31T12:00:00Z</updated> </entry> <entry> <title>From Placeholders to Genuine Avatars</title> <link href="https://material.io/blog/asset-people-2"/> <id>https://material.io/blog/asset-people-2</id> <summary>Using stock imagery to create believable people</summary> <updated>2022-03-24T13:00:00Z</updated> </entry> <entry> <title>Replacing “Users” with People</title> <link href="https://material.io/blog/asset-people-1"/> <id>https://material.io/blog/asset-people-1</id> <summary>Considering the real world by making human connections</summary> <updated>2022-03-17T13:00:00Z</updated> </entry> <entry> <title>Material Design Components for Android 1.5.0</title> <link href="https://material.io/blog/android-stable-release-1-5"/> <id>https://material.io/blog/android-stable-release-1-5</id> <summary>With Material Design 3 refinements and more color utilities</summary> <updated>2022-02-17T13:00:00Z</updated> </entry> <entry> <title>The Science of Color & Design</title> <link href="https://material.io/blog/science-of-color-design"/> <id>https://material.io/blog/science-of-color-design</id> <summary>How Material used color science to make design easier and more expressive than ever before</summary> <updated>2022-02-17T10:00:00Z</updated> </entry> <entry> <title>Say hello to Roboto Serif</title> <link href="https://material.io/blog/roboto-serif"/> <id>https://material.io/blog/roboto-serif</id> <summary>The newest member of the Roboto superfamily is designed to make reading more comfortable at any size, in any format.</summary> <updated>2022-02-16T10:00:00Z</updated> </entry> <entry> <title>Teaming Up to Improve Reading Research</title> <link href="https://material.io/blog/readability-consortium"/> <id>https://material.io/blog/readability-consortium</id> <summary>Google co-sponsors The Readability Consortium</summary> <updated>2022-02-15T10:00:00Z</updated> </entry> <entry> <title>Designing Harmony into Dynamic Color</title> <link href="https://material.io/blog/dynamic-color-harmony"/> <id>https://material.io/blog/dynamic-color-harmony</id> <summary>How Material enables makers to design with custom colors while respecting user choice</summary> <updated>2022-02-10T13:00:00Z</updated> </entry> <entry> <title>How Oddfellows Illustrated Material You</title> <link href="https://material.io/blog/interview-oddfellows-m3-art-style"/> <id>https://material.io/blog/interview-oddfellows-m3-art-style</id> <summary>Explore (and download) the new illustrations that bring the Material Design 3 site to life</summary> <updated>2022-01-27T13:00:00Z</updated> </entry> <entry> <title>Choosing the Right Transitions</title> <link href="https://material.io/blog/motion-research-container-transform"/> <id>https://material.io/blog/motion-research-container-transform</id> <summary>Making interfaces feel "fancy" with animated transitions</summary> <updated>2022-01-20T13:00:00Z</updated> </entry> <entry> <title>Using Block Patterns with Material Design for WordPress</title> <link href="https://material.io/blog/material-design-wordpress-plugin-030"/> <id>https://material.io/blog/material-design-wordpress-plugin-030</id> <summary>Plus other new features introduced in version 0.3.0</summary> <updated>2022-01-05T13:00:00Z</updated> </entry> <entry> <title>Material Design Award Winners 2021</title> <link href="https://material.io/blog/mda-2021-winners"/> <id>https://material.io/blog/mda-2021-winners</id> <summary>Learn from three product teams creating great experiences with Material</summary> <updated>2021-12-16T10:00:00Z</updated> </entry> <entry> <title>Announcing Google Fonts Knowledge</title> <link href="https://material.io/blog/google-fonts-knowledge"/> <id>https://material.io/blog/google-fonts-knowledge</id> <summary>A new resource to help designers and developers choose and use type with purpose</summary> <updated>2021-12-07T10:00:00Z</updated> </entry> <entry> <title>Migrating to Material Design 3</title> <link href="https://material.io/blog/migrating-material-3"/> <id>https://material.io/blog/migrating-material-3</id> <summary>Learn how to migrate to our newest updates</summary> <updated>2021-10-27T09:20:00Z</updated> </entry> <entry> <title>Introducing Material Theme Builder</title> <link href="https://material.io/blog/material-theme-builder"/> <id>https://material.io/blog/material-theme-builder</id> <summary>Visualize dynamic color, build a custom theme, and export to code</summary> <updated>2021-10-27T09:15:00Z</updated> </entry> <entry> <title>Design to Code: Turning Handoffs Into High-fives</title> <link href="https://material.io/blog/designtocode"/> <id>https://material.io/blog/designtocode</id> <summary>Teaming up with Figma to bring great UI from design to code</summary> <updated>2021-10-27T09:05:00Z</updated> </entry> <entry> <title>Start building with Material You</title> <link href="https://material.io/blog/start-building-with-material-you"/> <id>https://material.io/blog/start-building-with-material-you</id> <summary>Implement dynamic color and explore some of the latest personalization features of Material Design 3</summary> <updated>2021-10-27T09:00:00Z</updated> </entry> <entry> <title>2021 Material Design Awards</title> <link href="https://material.io/blog/material-design-awards-2021"/> <id>https://material.io/blog/material-design-awards-2021</id> <summary>Nominate your product and help us showcase the expressive capability of Material Design</summary> <updated>2021-09-16T10:00:00Z</updated> </entry> <entry> <title>Looking for Noto? It’s now on the Google Fonts website and API</title> <link href="https://material.io/blog/noto-announcement"/> <id>https://material.io/blog/noto-announcement</id> <summary>Expand your font choices with the new Noto site</summary> <updated>2021-09-16T09:00:00Z</updated> </entry> <entry> <title>Adjusting the Focus</title> <link href="https://material.io/blog/inclusive-imagery-at-google"/> <id>https://material.io/blog/inclusive-imagery-at-google</id> <summary>How inclusive imagery changes a product from being made for some, to being made for all</summary> <updated>2021-09-16T09:00:00Z</updated> </entry> <entry> <title>How to Reduce Layout Reflow When Using Web Fonts</title> <link href="https://material.io/blog/reduce-reflow-with-web-fonts"/> <id>https://material.io/blog/reduce-reflow-with-web-fonts</id> <summary>Applying best practices for font loading can help improve the user experience</summary> <updated>2021-09-09T09:00:00Z</updated> </entry> <entry> <title>Principles and Techniques for Effective Localization</title> <link href="https://material.io/blog/localization-principles-techniques"/> <id>https://material.io/blog/localization-principles-techniques</id> <summary>Going beyond translation to create more inclusive experiences</summary> <updated>2021-08-30T09:00:00Z</updated> </entry> <entry> <title>Material Design Components for Android 1.4.0</title> <link href="https://material.io/blog/android-stable-release-1-4"/> <id>https://material.io/blog/android-stable-release-1-4</id> <summary>NavigationRailView, motion theming, and more</summary> <updated>2021-07-07T13:00:00Z</updated> </entry> <entry> <title>Start Here: 5 Exercises to Prepare Your App for Large Screens</title> <link href="https://material.io/blog/5-steps-large-screen-apps"/> <id>https://material.io/blog/5-steps-large-screen-apps</id> <summary>What to prioritize when building a responsive experience</summary> <updated>2021-05-19T13:00:00Z</updated> </entry> <entry> <title>Introducing the Compose Material Catalog</title> <link href="https://material.io/blog/jetpack-compose-catalog"/> <id>https://material.io/blog/jetpack-compose-catalog</id> <summary>An overview of the new Material Design catalog for Jetpack Compose</summary> <updated>2021-05-19T10:30:00Z</updated> </entry> <entry> <title>Unveiling Material You</title> <link href="https://material.io/blog/announcing-material-you"/> <id>https://material.io/blog/announcing-material-you</id> <summary>The next stage for Material Design</summary> <updated>2021-05-18T11:00:00Z</updated> </entry> <entry> <title>Introducing Material Design Guidance for Large Screens</title> <link href="https://material.io/blog/material-design-for-large-screens"/> <id>https://material.io/blog/material-design-for-large-screens</id> <summary>Designing and building for more devices</summary> <updated>2021-05-14T13:00:00Z</updated> </entry> <entry> <title>Material Design at Google I/O 2021</title> <link href="https://material.io/blog/material-google-io21"/> <id>https://material.io/blog/material-google-io21</id> <summary>The sessions, workshops, discussions Material Design will host at Google I/O 2021</summary> <updated>2021-05-06T13:00:00Z</updated> </entry> <entry> <title>A Year in the Life of a Material Design Advocate</title> <link href="https://material.io/blog/year-in-the-life-material-design-advocate"/> <id>https://material.io/blog/year-in-the-life-material-design-advocate</id> <summary>What it’s like to be a Design Advocate at Google</summary> <updated>2021-04-22T13:00:00Z</updated> </entry> <entry> <title>10 Steps to Translate Your iOS Designs for Android</title> <link href="https://material.io/blog/ten-steps-ios-android-design"/> <id>https://material.io/blog/ten-steps-ios-android-design</id> <summary>How to bring your iOS experiences to Android in record time</summary> <updated>2021-04-16T13:00:00Z</updated> </entry> <entry> <title>Designing Text for the People Who Read It</title> <link href="https://material.io/blog/designing-text-visual-acuity-research"/> <id>https://material.io/blog/designing-text-visual-acuity-research</id> <summary>The science behind visual acuity, legibility, and text size</summary> <updated>2021-03-11T13:00:00Z</updated> </entry> <entry> <title>Google Fonts ❤️ Material Icons</title> <link href="https://material.io/blog/google-fonts-material-icons"/> <id>https://material.io/blog/google-fonts-material-icons</id> <summary>Google Fonts now supports open source icons, starting with the Material Design icon set</summary> <updated>2021-03-02T13:00:00Z</updated> </entry> <entry> <title>Jetpack Compose: Now in Beta</title> <link href="https://material.io/blog/jetpack-compose-beta"/> <id>https://material.io/blog/jetpack-compose-beta</id> <summary>Exploring the first beta release of Android’s modern, declarative toolkit for UI development</summary> <updated>2021-02-24T09:30:00Z</updated> </entry> <entry> <title>Building a Dark Theme for Google Fonts</title> <link href="https://material.io/blog/google-fonts-dark-theme"/> <id>https://material.io/blog/google-fonts-dark-theme</id> <summary>How Google Fonts implemented a dark theme in its Angular App</summary> <updated>2021-02-22T13:00:00Z</updated> </entry> <entry> <title>Material Design Components for Android 1.3.0</title> <link href="https://material.io/blog/android-stable-release-1-3-0"/> <id>https://material.io/blog/android-stable-release-1-3-0</id> <summary>ProgressIndicator, MaterialTimePicker, i18n / l10n, and more</summary> <updated>2021-02-18T13:00:00Z</updated> </entry> <entry> <title>Material Design for WordPress</title> <link href="https://material.io/blog/material-design-wordpress-plugin"/> <id>https://material.io/blog/material-design-wordpress-plugin</id> <summary>Apply Material Design directly to WordPress sites, no coding required</summary> <updated>2021-02-16T12:00:00Z</updated> </entry> <entry> <title>The State of Design Systems: 2020</title> <link href="https://material.io/blog/research-state-of-design-systems-2020"/> <id>https://material.io/blog/research-state-of-design-systems-2020</id> <summary>A community survey of design systems, from creation to implementation and beyond</summary> <updated>2020-12-16T14:00:00Z</updated> </entry> <entry> <title>Finding Ethical Design</title> <link href="https://material.io/blog/finding-ethical-design"/> <id>https://material.io/blog/finding-ethical-design</id> <summary>Incorporating ethics in the daily work of design</summary> <updated>2020-12-16T09:00:00Z</updated> </entry> <entry> <title>Announcing the Material Design Award Winners for 2020</title> <link href="https://material.io/blog/mda-2020-winners"/> <id>https://material.io/blog/mda-2020-winners</id> <summary>Celebrating the product teams that bring Material to life</summary> <updated>2020-12-14T09:00:00Z</updated> </entry> <entry> <title>Introducing the Material Design YouTube Channel</title> <link href="https://material.io/blog/material-design-youtube-channel"/> <id>https://material.io/blog/material-design-youtube-channel</id> <summary>Material’s new home for video tutorials, live streams, and Q&As</summary> <updated>2020-10-20T12:00:00Z</updated> </entry> <entry> <title>Finding Wellbeing in Filters and Selfies</title> <link href="https://material.io/blog/digital-wellbeing-face-retouching"/> <id>https://material.io/blog/digital-wellbeing-face-retouching</id> <summary>How to build transparency and control into face retouching features</summary> <updated>2020-10-01T12:00:00Z</updated> </entry> <entry> <title>People-First Principles for Digital Wellbeing</title> <link href="https://material.io/blog/digital-wellbeing-ux-principles"/> <id>https://material.io/blog/digital-wellbeing-ux-principles</id> <summary>A sneak peek at the UX foundations grounding Google's Digital Wellbeing Toolkit</summary> <updated>2020-09-17T13:00:00Z</updated> </entry> <entry> <title>What “Digital Wellbeing” Means to Material Design</title> <link href="https://material.io/blog/digital-wellbeing-design-systems"/> <id>https://material.io/blog/digital-wellbeing-design-systems</id> <summary>Promote wellbeing by focusing on fundamental needs, not just clicks</summary> <updated>2020-09-16T11:00:00Z</updated> </entry> <entry> <title>Designing a Material Theme: Color</title> <link href="https://material.io/blog/design-material-theme-color"/> <id>https://material.io/blog/design-material-theme-color</id> <summary>Crafting the perfect palette with Material Design and Figma</summary> <updated>2020-09-01T13:08:00Z</updated> </entry> <entry> <title>Building a Material Theme on Android: Color</title> <link href="https://material.io/blog/android-material-theme-color"/> <id>https://material.io/blog/android-material-theme-color</id> <summary>Color theming on Android using the MDC library</summary> <updated>2020-09-01T13:07:00Z</updated> </entry> <entry> <title>Designing a Material Theme: Typography</title> <link href="https://material.io/blog/design-material-theme-type"/> <id>https://material.io/blog/design-material-theme-type</id> <summary>Tailoring your typography with Material Design and Figma</summary> <updated>2020-09-01T13:06:00Z</updated> </entry> <entry> <title>Building a Material Theme on Android: Typography</title> <link href="https://material.io/blog/android-material-theme-type"/> <id>https://material.io/blog/android-material-theme-type</id> <summary>Type theming on Android using the MDC library</summary> <updated>2020-09-01T13:05:00Z</updated> </entry> <entry> <title>Designing a Material Theme: Shape</title> <link href="https://material.io/blog/design-material-theme-shape"/> <id>https://material.io/blog/design-material-theme-shape</id> <summary>Rounded or angled? Choosing the right shape family with Material Design and Figma</summary> <updated>2020-09-01T13:04:00Z</updated> </entry> <entry> <title>Building a Material Theme on Android: Shape</title> <link href="https://material.io/blog/android-material-theme-shape"/> <id>https://material.io/blog/android-material-theme-shape</id> <summary>Shape theming on Android using the MDC library</summary> <updated>2020-09-01T13:03:00Z</updated> </entry> <entry> <title>Building Beautiful Transitions with Material Motion for Android</title> <link href="https://material.io/blog/android-material-motion"/> <id>https://material.io/blog/android-material-motion</id> <summary>Introducing four transition patterns and how to add them to your app</summary> <updated>2020-09-01T13:02:00Z</updated> </entry> <entry> <title>Welcome to the Material Blog—Letter from the Editor</title> <link href="https://material.io/blog/material-design-blog-welcome"/> <id>https://material.io/blog/material-design-blog-welcome</id> <summary>Material Design, beyond guidelines and code</summary> <updated>2020-09-01T13:00:00Z</updated> </entry> <entry> <title>Building a Material Dark Theme on Android</title> <link href="https://material.io/blog/android-dark-theme-tutorial"/> <id>https://material.io/blog/android-dark-theme-tutorial</id> <summary>How to turn out the lights on Android using the MDC library</summary> <updated>2020-08-26T13:00:00Z</updated> </entry> <entry> <title>Why We Recommend Material Components for Android</title> <link href="https://material.io/blog/why-we-recommend-material-design-components-android"/> <id>https://material.io/blog/why-we-recommend-material-design-components-android</id> <summary>Ensuring that patterns learned in one app can be used in another</summary> <updated>2020-08-25T13:00:00Z</updated> </entry> <entry> <title>Material Components for Android 1.2.0</title> <link href="https://material.io/blog/android-stable-release-1-2"/> <id>https://material.io/blog/android-stable-release-1-2</id> <summary>Material motion system, Sliders, ShapeableImageView, and more</summary> <updated>2020-08-04T13:00:00Z</updated> </entry> <entry> <title>Video: Craft a Dark Theme with Material Design</title> <link href="https://material.io/blog/dark-theme-design-tutorial-video"/> <id>https://material.io/blog/dark-theme-design-tutorial-video</id> <summary>Learn how to create a dark theme palette and apply it to surfaces, typography, and components</summary> <updated>2020-06-30T13:00:00Z</updated> </entry> <entry> <title>How to Find Device Metrics for Any Screen</title> <link href="https://material.io/blog/device-metrics"/> <id>https://material.io/blog/device-metrics</id> <summary>Calculate the right measurements for design across devices</summary> <updated>2020-05-19T13:00:00Z</updated> </entry> <entry> <title>Migrating to Material Components for Android</title> <link href="https://material.io/blog/migrate-android-material-components"/> <id>https://material.io/blog/migrate-android-material-components</id> <summary>From Design Support Library 👉 MDC 1.0.0 👉 MDC 1.1.0 and beyond</summary> <updated>2020-04-16T13:00:00Z</updated> </entry> <entry> <title>Using Material Density on the Web</title> <link href="https://material.io/blog/material-density-web"/> <id>https://material.io/blog/material-density-web</id> <summary>A hands-on guide to applying default, comfortable, and compact density to your application</summary> <updated>2020-01-16T13:00:00Z</updated> </entry> <entry> <title>Video: Google Design Tutorials</title> <link href="https://material.io/blog/google-design-tutorial-video"/> <id>https://material.io/blog/google-design-tutorial-video</id> <summary>A series of hands-on tutorial videos covering design, tooling, and implementation</summary> <updated>2019-09-01T13:01:00Z</updated> </entry> <entry> <title>How Google created a custom Material theme</title> <link href="https://material.io/blog/google-material-custom-theme"/> <id>https://material.io/blog/google-material-custom-theme</id> <summary>Learn how Gmail, Google News, Google Pay, and Google Home use Material Design</summary> <updated>2018-05-09T13:00:00Z</updated> </entry> <entry> <title>Material Partner Studies</title> <link href="https://material.io/blog/material-partner-studies"/> <id>https://material.io/blog/material-partner-studies</id> <summary>Learn how apps like Lyft, Genius, NPR, Pocket Casts, and Zappos bring Material’s new expressive capabilities to life</summary> <updated>2018-05-08T13:00:00Z</updated> </entry> </feed>"
val path = "/path/to/file".toPath()
@Test fun success() = runTest { // runTest: the same as runBlocking with Dispatchers.Main
val fileSystem: FileSystem = FileSystem.SYSTEM val string = withContext(Dispatchers.Default) { fileSystem.read(path) { readUtf8() } } println(string)}
@Test fun fail() = runTest {
val fileSystem: FileSystem = FakeFileSystem() val string = withContext(Dispatchers.Default) { fileSystem.read(path) { readUtf8() } } println(string)} val path = "/path/to/file".toPath()
@Test fun success() = runTest { // runTest: the same as runBlocking with Dispatchers.Main
val fileSystem: FileSystem = FileSystem.SYSTEM val string = withContext(Dispatchers.Default) { fileSystem.read(path) { readUtf8() } } println(string)}
@Test fun fail() = runTest {
val fileSystem: FileSystem = FakeFileSystem() val string = withContext(Dispatchers.Default) { fileSystem.read(path) { readUtf8() } } println(string)}Mariquita | 1/2/2024 3.2 a 8.7
Actualización de funciones de los koalas | 2/1/2024 3.2 a 8.6 Koala | 1/1/2024 3.2 a 8.5 Medusa | 1/3/2023 3.2 a 8.4 Iguana | 2023.2.1 3.2-8.3 Hedgehog | 2023.1.1 3.2-8.2 Giraffe | 2022.3.1 3.2-8.1 Flamingo | 2022.2.1 3.2-8.0Mariquita | 1/2/2024 3.2 a 8.7 Actualización de funciones de los koalas | 2/1/2024 3.2 a 8.6 Koala | 1/1/2024 3.2 a 8.5 Medusa | 1/3/2023 3.2 a 8.4 Iguana | 2023.2.1 3.2-8.3 Hedgehog | 2023.1.1 3.2-8.2 Giraffe | 2022.3.1 3.2-8.1 Flamingo | 2022.2.1 3.2-8.0Mariquita | 1/2/2024 3.2 a 8.7 Actualización de funciones de los koalas | 2/1/2024 3.2 a 8.6 Koala | 1/1/2024 3.2 a 8.5 Medusa | 1/3/2023 3.2 a 8.4 Iguana | 2023.2.1 3.2-8.3 Hedgehog | 2023.1.1 3.2-8.2 Giraffe | 2022.3.1 3.2-8.1 Flamingo | 2022.2.1 3.2-8.0