title: Test Protocol abbrev: TP docname: draft-test-00 date: 2022-03-29 category: std submissionType: IETF
ipr: trust200902 area: Applications
title: Test Protocol abbrev: TP docname: draft-test-00 date: 2022-03-29 category: std submissionType: IETF
ipr: trust200902 area: Applications
| # ... | |
| # Ensure yarn is not run in an npm directory. | |
| yarn() { | |
| if [ -f "./package-lock.json" ]; then | |
| echo "no... this is an npm directory" | |
| else | |
| command yarn $@ | |
| fi | |
| } | 
| /// Library A | |
| class Animal { | |
| final String name; | |
| const Animal({ required this.name }); | |
| } | |
| class Dog extends Animal { | |
| final String breed; | 
| // This does not work under Linux because we lack the ability to access the MMIO/GPIO memory via DMA. | |
| .global initializeGPIO | |
| initializeGPIO: | |
| PROLOGUE | |
| /* Use the SOC proc file to determine the MMIO base offset. */ | |
| // Call open to get a file descriptor for the device tree proc file. | |
| LDR R0, =socRangesProcFile | 
| /** | |
| * gpio.s - Library for working with GPIO pins in ARM32 assembly. | |
| * Version 1.0 (Oct/10/22) | |
| * | |
| * Changelog: | |
| * ========== | |
| * v1.0 (Oct/10/22): | |
| * - Initial Release | |
| * | |
| * License: | 
| /** | |
| * gpio.s - Library for working with GPIO pins in ARM32 assembly. | |
| * Version 1.1.1 (Dec/2/22) | |
| * | |
| * Changelog: | |
| * ========== | |
| * v1.1.1 (Dec/2/22): | |
| * - Make gpioMode pull up for input and pull down for output. | |
| * v1.1 (Dec/1/22): | |
| * - Add gpioRead and gpioPull functions. | 
| defmodule Macros do | |
| defmacro matching_tuple_values(n, a, b) do | |
| # If we've reached n = 0 for the Macro invocation, we've already checked | |
| # the elements at that index, so we can | |
| if n < 1, do: true, | |
| else: quote do: ( | |
| # Check that elem(a, n - 1) == elem(b, n - 1). | |
| (elem(unquote(a), unquote(n) - 1) == elem(unquote(b), unquote(n) - 1)) | |
| # Then, check that this also holds recursively for | |
| # matching_tuple_values(n - 1, ...). | 
| mixin ClientControllerSupport {} | |
| abstract class Client { | |
| void doSomething(); | |
| static isControllable(Client client) { | |
| return client is ClientControllerSupport; | |
| } | |
| } |