sharjeelyunus/github-issues-dataset huggingface dataset:
Repository: godot
Issue: Cylinder shape collision issues with GodotPhysics
Labels: bug,confirmed,topic:physics,topic:3d

### Godot version

3.4.2

### System information

Windows 7 64-bit

### Issue description

A few issues with Godot Physics that aren't present if the engine is switched to Bullet.

### Steps to reproduce

Here's is an example of ramp handling in this movement + upstepping controller, none of this glitching occurs with bullet:

https://user-images.githubusercontent.com/16231628/150599314-e6c72c45-ecf7-4497-a038-e9938075fa0f.mp4

Some more ramp weirdness:

https://user-images.githubusercontent.com/16231628/150600827-d5b29e23-932f-48d2-b706-0bb1145abe41.mp4

Strange edge detection (wish I hadn't hit stop cause on the last couple of frames I get stuck halfway into the ramp and cannot move):

https://user-images.githubusercontent.com/16231628/150600988-4f437dac-b86c-4fdc-8908-605166bce07c.mp4

There's other times where it'll get stuck in unusual geometry (right at the end I can't move):

https://user-images.githubusercontent.com/16231628/150601113-15075af2-cdf7-4f37-976f-1c36079f20e3.mp4

This is all fixed by using Bullet, here's my test project:



### Minimal reproduction project

[gp_vs_bullet.zip](https://github.com/godotengine/godot/files/7916614/gp_vs_bullet.zip)
Repository: rust
Issue: rustdoc: stability and portability "pills" are sometimes broken to the next line
Labels: T-rustdoc,C-bug,A-rustdoc-ui

Screenshot demonstrating the issue:

![Screen Shot 2022-01-21 at 12 50 45 PM](https://user-images.githubusercontent.com/1372438/150604939-f4b94561-cb5c-434b-b80c-2416cfabe7aa.png)

See https://doc.rust-lang.org/nightly/std/intrinsics/index.html for more examples.

I would expect these pills to stay on the same line as the item name except in the case of very long function names.

### Meta
<!--
If you're using the stable version of the compiler, you should also check if the
bug also exists in the beta or nightly versions.
-->

`rustc --version --verbose`:
```
rustc 1.58.1 (db9d1b20b 2022-01-20)
binary: rustc
commit-hash: db9d1b20bba1968c1ec1fc49616d4742c1725b4b
commit-date: 2022-01-20
host: x86_64-apple-darwin
release: 1.58.1
LLVM version: 13.0.0
```
Repository: TypeScript
Issue: Object literal key completions not filtered by prior signature-discriminating argument
Labels: Bug,Help Wanted,Domain: Signature Help

Issue Type: <b>Bug</b>

When I make a function overloads using a type literal like below, intellisense should update remaining arguments based on which literal value I choose.  

Using the example below, after I type:

"new thing('bar',{" 

I would expect intellisense to suggest:

thing(type: "bar", options: { barOption: number; }): thing 

but it suggests:

1/2
thing(type: "foo", options: { fooOption: string; }): thing 

If I complete the line with the fooOption I do get a "no overload matches this call. Which is good.

```ts
export class thing {
    constructor(type: 'foo', options: {fooOption: string});
    constructor(type: 'bar', options: {barOption: number});
    constructor(type: 'foo' | 'bar', options: any){}

    static test(){
        new thing("bar",{fooOption: 1})
    }
}
```

VS Code version: Code 1.58.2 (c3f126316369cd610563c75b1b1725e0679adfb3, 2021-07-14T22:10:15.214Z)
OS version: Windows_NT x64 10.0.19042
Restricted Mode: No

<details>
<summary>System Info</summary>

|Item|Value|
|---|---|
|CPUs|Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz (12 x 2208)|
|GPU Status|2d_canvas: enabled<br>gpu_compositing: enabled<br>multiple_raster_threads: enabled_on<br>oop_rasterization: enabled<br>opengl: enabled_on<br>rasterization: enabled<br>skia_renderer: enabled_on<br>video_decode: enabled<br>vulkan: disabled_off<br>webgl: enabled<br>webgl2: enabled|
|Load (avg)|undefined|
|Memory (System)|15.74GB (2.89GB free)|
|Process Argv|. --crash-reporter-id 105c67e8-f215-456d-974b-51c78c3168f3|
|Screen Reader|no|
|VM|0%|
</details><details><summary>Extensions (22)</summary>

Extension|Author (truncated)|Version
---|---|---
armview|ben|0.4.5
prettier-vscode|esb|8.1.0
auto-close-tag|for|0.5.13
code-runner|for|0.11.6
azure-pipelines|ms-|1.195.0
vscode-azureappservice|ms-|0.23.0
vscode-azurefunctions|ms-|1.6.0
vscode-azureresourcegroups|ms-|0.4.0
vscode-azurestorage|ms-|0.12.1
vscode-azurevirtualmachines|ms-|0.4.1
vscode-bicep|ms-|0.4.1124
vscode-cosmosdb|ms-|0.18.1
vscode-docker|ms-|1.18.0
vscode-dotnet-runtime|ms-|1.3.0
data-workspace-vscode|ms-|0.1.0
mssql|ms-|1.12.0
sql-database-projects-vscode|ms-|0.14.1
azure-account|ms-|0.9.11
azurecli|ms-|0.5.0
vscode-node-azure-pack|ms-|0.2.1
azurerm-vscode-tools|msa|0.15.5
vscode-print|pdc|0.9.14


</details>
<!-- generated by issue reporter -->
Repository: pytorch
Issue: Build release binaries with USE_GLOG=ON by default
Labels: module: build,triaged,enhancement,module: infra

### 🚀 The feature, motivation and pitch

It looks like USE_GLOG is set to off by default: https://github.com/pytorch/pytorch/blob/master/CMakeLists.txt#L217, but as a result this limits the usefulness of debug logging that users can observe in their application. At least two use cases would benefit from a configurable GLOG level: 

1. TORCH_DISTRIBUTED_DEBUG, where users cannot see debug logs in pre-built binaries: https://github.com/pytorch/pytorch/issues/70667
2. c10d Socket implementation was recently revised, now containing much more detailed debugging logging that enables users to understand and troubleshoot connection issues, although these logs do not appear in pre-built release binaries: https://github.com/pytorch/pytorch/pull/68226

It looks like this was initially disabled by default in https://github.com/pytorch/pytorch/pull/16789. If this doesn't incur significant overhead/library interoperability issues, it might be appropriate to revisit flipping this flag as the default. 

### Alternatives

As an alternative, we can use the alternate logging API upstreamed from C2 such as https://github.com/pytorch/pytorch/blob/master/c10/util/logging_is_not_google_glog.h, although there is currently not a way to modify the default log level, WARNING, by the python user. This was mentioned by @cbalioglu. 

### Additional context

_No response_

cc @malfet @seemethere
Repository: next.js
Issue: Shallow Routing incorrectly recreate/remount component (lose state)
Labels: bug

### Run `next info` (available from version 12.0.8 and up)

_No response_

### What version of Next.js are you using?

12.0.8 (also tried with 11.1.3)

### What version of Node.js are you using?

16.5.0

### What browser are you using?

Chrome

### What operating system are you using?

macOS

### How are you deploying your application?

next start, Netlify

### Describe the Bug

First shallow routing after redirect from another page will incorrectly remount component (any component state will be reset).
Subsequent shallow routing within the same page works as expected (keeping component state).



### Expected Behavior

Shallow routing within the same page should keep component state

### To Reproduce

- create 2 pages (i.e. page `A` and `B`)

- In page `B` component, add some local state
```typescript
const [value, setValue] = useState('initial');
```
-  From page A redirect to page B 
```typescript
router.push({ pathname: '/B/[slug], query: { slug: '1' } })
```

- In page B, update the local component state 
```typescript
setValue('updated');
```
and then do shallow routing to update the slug 
```typescript
router.push({ pathname: '/B/[slug], query: { slug: '2' } })
```
the state `value` will reset to `initial` (component recreated).

- Subsequent shallow routing works as expected and keep the state value
Repository: yt-dlp
Issue: add support for incision academy
Labels: site-request,account-needed,can-share-account

### Checklist

- [X] I'm reporting a new site support request
- [X] I've verified that I'm running yt-dlp version **2022.01.21**. ([update instructions](https://github.com/yt-dlp/yt-dlp#update))
- [X] I've checked that all provided URLs are alive and playable in a browser
- [X] I've checked that none of provided URLs [violate any copyrights](https://github.com/ytdl-org/youtube-dl#can-you-add-support-for-this-anime-video-site-or-site-which-shows-current-movies-for-free) or contain any [DRM](https://en.wikipedia.org/wiki/Digital_rights_management) to the best of my knowledge
- [X] I've searched the [bugtracker](https://github.com/yt-dlp/yt-dlp/issues?q=) for similar issues including closed ones. DO NOT post duplicates
- [X] I've read the [guidelines for opening an issue](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#opening-an-issue)
- [X] I've read about [sharing account credentials](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#are-you-willing-to-share-account-details-if-needed) and am willing to share it if required

### Region

any rejion

### Example URLs

https://academy.incision.care/courses/abdominal-aorta-exposure-by-left-visceral-mobilization/info

### Description

can you add support to download from 
https://academy.incision.care

and this is the m3u8 link appear 
https://api.academy.incision.care/courses/urinary-catheterization-male/video/HD.1080.2d.m3u8?token=eyJraWQiOiJMeWxpTkhnOHBaQXBJa3A5ZkZMYnNqTnJQUlJPUzZXenZpSGRyYmhlQ253PSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiIzNmNhZGNhMC1mMjY0LTQzMjgtOTkwOS04Y2IzYjQxOGFjNDciLCJkYl91c2VyX2lkIjoiMzI3MDkiLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiaXNzIjoiaHR0cHM6XC9cL2NvZ25pdG8taWRwLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tXC9ldS13ZXN0LTFfaDdlOXNCZUJpIiwiY29nbml0bzp1c2VybmFtZSI6IjM2Y2FkY2EwLWYyNjQtNDMyOC05OTA5LThjYjNiNDE4YWM0NyIsImV4dGVybmFsX3VzZXJfaWQiOiIwNGMyMjQzMy1mZjIzLTExZWItYjViMC0wNmQ3Nzc2YTk4ZjAiLCJhdWQiOiI2dGQydXBzcHFzZ28xc2NhdDBzb2hybWM2bCIsImV2ZW50X2lkIjoiZjBkM2IzODgtYTRlYy00MDNhLWI3ODMtMzhiZDhiN2YwNDdmIiwidG9rZW5fdXNlIjoiaWQiLCJwZXJtaXNzaW9ucyI6IiIsImF1dGhfdGltZSI6MTY0MjYzMjI1NywiZXhwIjoxNjQyODE2Mjc3LCJpYXQiOjE2NDI4MTI2NzcsImVtYWlsIjoibW9tYWdkeTc1NkBnbWFpbC5jb20ifQ.QE8RgaJABT9qfavKPS4nzYyKD8BKn_fQQIS7ggZaAYtM4vQzvHuByR6UsVtkcJ1r31vh7SycKmQyZ0nRtZTXl0tuXsX3oA8BPR_uZhnUU-gFKAMGtJU_1Wng1QUko-3L5cwOFxQEMSjs_f5_9lkWVi0QO7JZPndlQcVaveQjRaE0uZdlZFtSeY4pB_vSLKl_s-Z5u3iME-a70yU1N9dXTmTybLxQNkYp5Z_fl9vwhCS8cgwMMT_oZZAUTTkJwhXoLr9iRI-X-H-1XU3nXA0jqT2pCoCH7D3p5KuToTspehTZpeBBp6_L_YUHrhLIq7T38KmtiMyT5FTwmbc-4K3Aeg

### Verbose log

```shell
yt-dlp.exe  "%url%" -P "Down" --downloader aria2c.exe
```
Repository: TypeScript
Issue: allow non-null assertion in jsx tagName
Labels: Suggestion,Awaiting More Feedback

# Suggestion

## 🔍 Search Terms

non-null assertion jsx

## ✅ Viability Checklist

My suggestion meets these guidelines:

* [x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
* [x] This wouldn't change the runtime behavior of existing JavaScript code
* [x] This could be implemented without emitting different JS based on the types of the expressions
* [x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
* [x] This feature would agree with the rest of [TypeScript's Design Goals](https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals).


## ⭐ Suggestion

allow non-null assertion in jsx tagName

## 📃 Motivating Example

## 💻 Use Cases

```json
{
    "compilerOptions": {
        "jsx": "react",
        "strict": true,
        "noUncheckedIndexedAccess": true
    }
}
```

```tsx

declare var div :{ [className :string] :() => any };

<div.className! />;

```

---

(Obvioiusly, old tsx didn't include this feature, just because `noUncheckedIndexedAccess` did not exist at that time. So allow "non-null assertion", is not like the other complex things like `as`.)

Or something like `{ [className :string]! :() => any }` (the new `!`) is also okay, which means skip `noUncheckedIndexedAccess` for this object. This is a more universal supplementary measure for `noUncheckedIndexedAccess` (useful to proxy object, they can always get value for any key), not limited to tsx. The second way is more handy, but need a brand new syntax, while the first suggestion is lowcost to reach.

@RyanCavanaugh
Repository: yt-dlp
Issue: Feature Request - Concat - Provide Chapter Marks to timestamp concat'd videos
Labels: enhancement

### Checklist

- [X] I'm reporting a feature request
- [X] I've verified that I'm running yt-dlp version **2022.01.21**. ([update instructions](https://github.com/yt-dlp/yt-dlp#update))
- [X] I've searched the [bugtracker](https://github.com/yt-dlp/yt-dlp/issues?q=) for similar issues including closed ones. DO NOT post duplicates
- [X] I've read the [guidelines for opening an issue](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#opening-an-issue)

### Description

## Request:
Add an option to extend --concat-playlist to create Chapter titles like "video 1, video 2, video 3, ect" to help distinguish the individual videos in the new single larger file. 

Something like ``--concat-playlist-make-chapters`` ?

The name of the chapter marks is less of a concern than just having an entry in chapters to help delineate when a playlist video starts and ends within the larger concat'd playlist.

Thanks!
Repository: rust
Issue: rust 1.58.1 "malicious" .../i686-pc-windows-msvc/lib/std-41d48f5938a7bd14.dll
Labels: O-windows,O-x86_64,O-x86_32

I upgraded to rust 1.58.1 using rustup (installed from Homebrew) on my Apple M1 Mac and my antivirus software quarantined one of the DLLs with the following message:

> An infected file attempted to run on your device.
> Threat name: Gen:Variant.Jaik.50076
> Path: /Users/michael/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/i686-pc-windows-msvc/lib/std-41d48f5938a7bd14.dll
> We quarantined the file to prevent malicious commands from being executed on your device.

I [uploaded it to Virustotal](https://www.virustotal.com/gui/file/a320693d58b215a55aec0c47ec30d1fd43bf037c56a4d19a66fd6e3e030d7275) and found that several antivirus vendors detect it as malicious:

<img width="1191" alt="Virustotal: 15 security vendors and no sandboxes flagged this file as malicious" src="https://user-images.githubusercontent.com/4579020/150625481-aa09eab5-e97a-4c76-98bf-02b7bdf95539.png">
Repository: pytorch
Issue: Many APIs `INTERNAL ASSERT FAILED` when promoting `complex32` dtype
Labels: triaged,module: complex

### 🐛 Describe the bug

I create a new issue to log the APIs that trigger `INTERNAL ASSERT FAILED` when promoting `complex32` dtype based on [my reply](https://github.com/pytorch/pytorch/issues/70486#issuecomment-1018351914).

Buggy APIs:
```
torch.ge
torch.le
torch.gt
torch.lt
torch.ne
torch.eq
torch.igamma
torch.igammac
torch.xlogy
torch.logical_and
torch.logical_or
torch.logical_xor
torch.bitwise_and
torch.bitwise_or
torch.bitwise_xor
torch.bucketize
torch.searchsorted
torch.dist
torch.ldexp
torch.sub
torch.add
torch.mul
torch.div
torch.ger
torch.outer
torch.inner
torch.nextafter
torch.copysign
torch.pow
torch.gcd
torch.lcm
torch.remainder
torch.logaddexp
torch.logaddexp2
torch.bitwise_right_shift
torch.bitwise_left_shift
torch.nn.functional.l1_loss
torch.nn.functional.mse_loss
torch.nextafter
torch.fmod
torch.atan2
torch.renorm
```

A code snippet to reproduce:

```python
import torch
results = dict()
input = torch.rand([1], dtype=torch.float64)
other = torch.rand([1], dtype=torch.complex32)
try:
  results["res"] = torch.add(input, other)
except Exception as e:
  results["err"] = "ERROR:"+str(e)
print(results)
```

### Versions

pytorch: 1.10.1

cc @ezyang @gchanan @zou3519 @bdhirsh @anjali411 @dylanbespalko @mruberry @Lezcano @nikitaved
Repository: node
Issue: perf_hooks.performance.timerify() with histogram: RangeError [ERR_OUT_OF_RANGE] on arm64
Labels: perf_hooks

### Version

v14, v16, v17, v18

### Platform

macOS v12.4 (21F79).

Darwin 21.5.0 Darwin Kernel Version 21.5.0: Tue Apr 26 21:08:37 PDT 2022; root:xnu-8020.121.3~4/RELEASE_ARM64_T6000 arm64

### Subsystem

perf_hooks

### What steps will reproduce the bug?

Run this snippet:

```js
import {createHistogram, performance} from 'node:perf_hooks';

const fn = () => {};

const timerified = performance.timerify(fn, {histogram: createHistogram()});

for (let i = 0; i < 100_000; i++) {
	try {
		timerified();
	} catch (error) {
		console.error('Crashed on iteration', i);

		throw error;
	}
}
```

### How often does it reproduce? Is there a required condition?

100% consistent reproduction, requires arm64, maybe requires macOS.

### What is the expected behavior?

Calling the timerified function returned from `perf_hooks.performance.timerify()` should successfully record to the histogram.

### What do you see instead?

```
node:internal/errors:466
    ErrorCaptureStackTrace(err);
    ^

RangeError [ERR_OUT_OF_RANGE]: The value of "val" is out of range. It must be a safe integer greater than 0. Received 0
    at new NodeError (node:internal/errors:377:5)
    at RecordableHistogram.record (node:internal/histogram:290:13)
    at processComplete (node:internal/perf/timerify:40:15)
    at timerified fn (node:internal/perf/timerify:88:5)
    at file:///Users/jonah/programming/benchmark/index.mjs:9:3
    at ModuleJob.run (node:internal/modules/esm/module_job:198:25)
    at async Promise.all (index 0)
    at async ESMLoader.import (node:internal/modules/esm/loader:409:24)
    at async loadESM (node:internal/process/esm_loader:85:5)
    at async handleMainPromise (node:internal/modules/run_main:61:12) {
  code: 'ERR_OUT_OF_RANGE'
}

Node.js v18.1.0
```

### Additional information

Originally reported here: https://github.com/sindresorhus/yoctocolors/pull/9#issuecomment-1019033882

---

The bug appears to be from the implementation of `perf_hooks.performance.timerify()` with a histogram, when calling the returned timerified function. The error comes from the input validation of `RecordableHistogram#record()`, attempting to record a value `x < 1` will throw. For whatever reason `timerify()` seems to be recording an execution duration of 0 and trying to record that. See the error stacktrace for more info.
Repository: flutter
Issue: Supporting of in app purchases on Windows Store
Labels: c: new feature,platform-windows,customer: crowd,p: in_app_purchase,package,a: desktop,P3,team-windows,triaged-windows

Do you have any plans supporting of in app purchases on WIndows Store?

https://pub.dev/packages/in_app_purchase
https://support.microsoft.com/en-us/account-billing/make-an-in-app-purchase-in-microsoft-store-1de1279a-be0e-6ad0-1d01-fbe59e90dc47
Repository: node
Issue: tls.connect error with PKCS#11
Labels: tls

### Version

16.13.1

### Platform

arm9

### Subsystem

imx6 with Trusted Platform Module

### What steps will reproduce the bug?

The issue happens when
- [mqtt client](https://github.com/mqttjs/MQTT.js) reconnects using `tls.connect` (first connection works fine)
- the options given to `tls.connect` are `{'cert': '/path/to/tpmCert.pem', 'privateKeyEngine': '/usr/lib/engines-1.1/pkcs11.so', 'privateKeyIdentifier': 'foo', 'ca': '/path/to/root.ca.pem'}`


### How often does it reproduce? Is there a required condition?

The initial connection works fine but after ~1 hour, mqtt reconnects to the server using `tls.connect` again with the same options as for the initial connection.

### What is the expected behavior?

The secure connection should be established with the given certificates.

### What do you see instead?

```
Unable to check if already logged in
Login failed
Login to token failed, returning NULL...
PKCS11_get_private_key returned NULL
node:internal/tls/secure-context:196
        context.setEngineKey(privateKeyIdentifier, privateKeyEngine);
                ^

Error: error:820780B1: mPKCS#11odule:pkcs11_open_session:Session count
    at configSecureContext (node:internal/tls/secure-context:196:17)
    at Object.createSecureContext (node:_tls_common:116:3)
    at Object.connect (node:_tls_wrap:1621:48)
    at Object.buildBuilder (/home/node/node_modules/mqtt/lib/connect/tls.js:17:20)
    at MqttClient.wrapper [as streamBuilder] (/home/node/node_modules/mqtt/lib/connect/index.js:154:36)
    at MqttClient._setupStream (/home/node/node_modules/mqtt/lib/client.js:298:22)
    at MqttClient._reconnect (/home/node/node_modules/mqtt/lib/client.js:938:10)
    at Timeout.<anonymous> (/home/node/node_modules/mqtt/lib/client.js:958:12)
    at listOnTimeout (node:internal/timers:557:17)
    at processTimers (node:internal/timers:500:7) {
  opensslErrorStack: [
    'error:26096080:engine routines:ENGINE_load_private_key:failed loading private key',
    'error:820780B1:PKCS#11 module:pkcs11_open_session:Session count'
  ],
  library: 'PKCS#11 module',
  function: 'pkcs11_open_session',
  reason: 'Session count',
  code: 'ERR_OSSL_SESSION_COUNT'
}
```

### Additional information

_No response_
Repository: pytorch
Issue: Fancy indexing bug when combining masks with indexes
Labels: triaged,module: numpy,module: advanced indexing

### 🐛 Describe the bug

When combining a mask and an index torch give an error but equivalent code works fine in numpy:
```
import numpy as np
import torch as t

# Working example in numpy
x = np.random.randn(5, 5, 2)
m = np.random.randn(5, 5) < 0

# This is ok
print(x[m, 0])

# Nonworking example in torch
x = t.randn((5, 5, 2))
m = t.randn((5, 5)) < 0

# This is not ok
print(x[m, 0])
```

I get the following error: IndexError: The shape of the mask [5, 5] at index 1 does not match the shape of the indexed tensor [5, 2] at index 1



### Versions

PyTorch version: 1.9.0+cu111
Is debug build: False
CUDA used to build PyTorch: 11.1
ROCM used to build PyTorch: N/A

OS: Microsoft Windows 10 Home
GCC version: Could not collect
Clang version: Could not collect
CMake version: Could not collect
Libc version: N/A

Python version: 3.9.7 (tags/v3.9.7:1016ef3, Aug 30 2021, 20:19:38) [MSC v.1929 64 bit (AMD64)] (64-bit runtime)
Python platform: Windows-10-10.0.19042-SP0
Is CUDA available: True
CUDA runtime version: 11.4.100
GPU models and configuration: GPU 0: NVIDIA GeForce RTX 3070 Laptop GPU
Nvidia driver version: 472.56
cuDNN version: Could not collect
HIP runtime version: N/A
MIOpen runtime version: N/A

Versions of relevant libraries:
[pip3] numpy==1.21.2
[pip3] torch==1.9.0+cu111
[pip3] torchaudio==0.9.0
[pip3] torchvision==0.10.0+cu111
[conda] Could not collect

I've also tested in in libtorch 1.10 with the same error.

cc @mruberry @rgommers
Repository: flutter
Issue: FFI plugin `flutter test` support
Labels: a: tests,tool,c: proposal,team-tool

FFI plugins have a native build step which compiles native code when compiling a Flutter application.

* https://github.com/flutter/flutter/pull/96225

However, `flutter test` just runs Dart code and does not do a native build step.

This prevents unit testing FFI plugins.

We could support unit testing by standardizing on `bin/setup.dart` invoking a native build (and standardizing on CMake being the build tool of choice).

The user experience until we get to that point when trying to do `flutter test`:

> The FFI plugin template itself doesn't include any unit tests:
> 
>> `Test directory "test" not found.`
>
> When adding a test, opening the dynamic library fails:
>
>> `Shell: Invalid argument(s): Failed to load dynamic library '<...>':`