Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test integration tests #1250

Merged

Conversation

WojciechNagorski
Copy link
Collaborator

No description provided.

@zybexXL
Copy link
Contributor

zybexXL commented Nov 21, 2023

Maybe take this change to limit parallel appveyor runs:

# Maximum number of concurrent jobs for the project
max_jobs: 1

@WojciechNagorski
Copy link
Collaborator Author

@drieseng I need admin permissions to Appveyor. I've run tests locally in this way and generated a test coverage
image

@WojciechNagorski
Copy link
Collaborator Author

image

appveyor.yml Outdated Show resolved Hide resolved
Co-authored-by: Rob Hague <rob.hague00@gmail.com>
appveyor.yml Outdated Show resolved Hide resolved
appveyor.yml Outdated Show resolved Hide resolved
Co-authored-by: Rob Hague <rob.hague00@gmail.com>
appveyor.yml Outdated Show resolved Hide resolved
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can run dotnet new gitignore to get a better .gitignore file

appveyor.yml Outdated
@@ -21,16 +21,16 @@ for:

build_script:
- echo build
#- dotnet build Renci.SshNet.sln -c Debug -f net7.0
- dotnet build Renci.SshNet.sln -c Debug -f net7.0

test_script:
- sh: echo "Run unit tests"
# - sudo tcpdump -i docker0 -w artifacts/tcpdump.pcap -U &
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Feel free to delete all the commented-out stuff

@WojciechNagorski
Copy link
Collaborator Author

@Rob-Hague @drieseng Is ready to review. It works:
image
I've downloaded coverage reports and I've merged them using the following command:

reportgenerator -reports:"C:\Users\nagorski\Downloads\artifacts\linux_integration_test_net_7_coverage.xml;C:\Users\nagorski\Downloads\artifacts\linux_unit_test_net_7_coverage.net7.0.xml;C:\Users\nagorski\Downloads\artifacts\windows_unit_test_net_4_6_2_coverage.net462.xml;C:\Users\nagorski\Downloads\artifacts\windows_unit_test_net_7_coverage.net7.0.xml" -targetdir:"reports" -reporttypes:"Html;MarkdownSummaryGithub" -sourcedirs:"." -assemblyfilters:"-Renci.SshNet.TestTools.OpenSSH"

The Zip result:
reports.zip

image

Summary

Summary
Generated on: 11/29/2023 - 11:22:40 AM
Coverage date: 11/29/2023 - 10:27:45 AM - 11/29/2023 - 11:01:11 AM
Parser: MultiReport (4x Cobertura)
Assemblies: 1
Classes: 376
Files: 408
Line coverage: 64% (23970 of 37439)
Covered lines: 23970
Uncovered lines: 13469
Coverable lines: 37439
Total lines: 78993
Branch coverage: 51.7% (4371 of 8446)
Covered branches: 4371
Total branches: 8446
Method coverage: Feature is only available for sponsors

Coverage

Renci.SshNet - 64%
Name Line Branch
Renci.SshNet 64% 51.7%
Renci.SshNet.Abstractions.CryptoAbstraction 65.2%
Renci.SshNet.Abstractions.DiagnosticAbstraction 100%
Renci.SshNet.Abstractions.DnsAbstraction 100%
Renci.SshNet.Abstractions.ReflectionAbstraction 100%
Renci.SshNet.Abstractions.SocketAbstraction 71.1% 65%
Renci.SshNet.Abstractions.SocketExtensions 62.3% 65%
Renci.SshNet.Abstractions.ThreadAbstraction 61.1% 50%
Renci.SshNet.AuthenticationMethod 100% 100%
Renci.SshNet.BaseClient 88.5% 84%
Renci.SshNet.Channels.Channel 95.7% 88.6%
Renci.SshNet.Channels.ChannelDirectTcpip 78.5% 75%
Renci.SshNet.Channels.ChannelForwardedTcpip 80.4% 75%
Renci.SshNet.Channels.ChannelSession 66.6% 90%
Renci.SshNet.Channels.ClientChannel 96.2% 70%
Renci.SshNet.Channels.ServerChannel 100%
Renci.SshNet.CipherInfo 100%
Renci.SshNet.ClientAuthentication 97.1% 97.7%
Renci.SshNet.CommandAsyncResult 90%
Renci.SshNet.Common.AsyncResult 84% 85%
Renci.SshNet.Common.AsyncResult`1 100%
Renci.SshNet.Common.AuthenticationBannerEventArgs 0%
Renci.SshNet.Common.AuthenticationEventArgs 80%
Renci.SshNet.Common.AuthenticationPasswordChangeEventArgs 0%
Renci.SshNet.Common.AuthenticationPrompt 90%
Renci.SshNet.Common.AuthenticationPromptEventArgs 88.8%
Renci.SshNet.Common.BigInteger 85.9% 82.9%
Renci.SshNet.Common.ChannelDataEventArgs 75% 50%
Renci.SshNet.Common.ChannelEventArgs 100%
Renci.SshNet.Common.ChannelExtendedDataEventArgs 100%
Renci.SshNet.Common.ChannelOpenConfirmedEventArgs 0%
Renci.SshNet.Common.ChannelOpenFailedEventArgs 0%
Renci.SshNet.Common.ChannelRequestEventArgs 75% 50%
Renci.SshNet.Common.DerData 62.3% 52.1%
Renci.SshNet.Common.ExceptionEventArgs 100%
Renci.SshNet.Common.Extensions 93.6% 90.9%
Renci.SshNet.Common.HostKeyEventArgs 95.5% 50%
Renci.SshNet.Common.NetConfServerException 0%
Renci.SshNet.Common.ObjectIdentifier 100% 100%
Renci.SshNet.Common.Pack 90.6%
Renci.SshNet.Common.PacketDump 100% 100%
Renci.SshNet.Common.PipeStream 75.7% 72.5%
Renci.SshNet.Common.PortForwardEventArgs 90.9% 100%
Renci.SshNet.Common.PosixPath 100% 100%
Renci.SshNet.Common.ProxyException 25%
Renci.SshNet.Common.ScpDownloadEventArgs 88.8%
Renci.SshNet.Common.ScpException 25%
Renci.SshNet.Common.ScpUploadEventArgs 100%
Renci.SshNet.Common.SemaphoreLight 67.2% 50%
Renci.SshNet.Common.SftpPathNotFoundException 25%
Renci.SshNet.Common.SftpPermissionDeniedException 25%
Renci.SshNet.Common.ShellDataEventArgs 0%
Renci.SshNet.Common.SshAuthenticationException 50%
Renci.SshNet.Common.SshConnectionException 69.5%
Renci.SshNet.Common.SshData 90.1% 87.5%
Renci.SshNet.Common.SshDataStream 76.4% 57.1%
Renci.SshNet.Common.SshException 75%
Renci.SshNet.Common.SshIdentificationEventArgs 100%
Renci.SshNet.Common.SshOperationTimeoutException 25%
Renci.SshNet.Common.SshPassPhraseNullOrEmptyException 25%
Renci.SshNet.Compression.Compressor 0% 0%
Renci.SshNet.Compression.Zlib 0%
Renci.SshNet.Compression.ZlibOpenSsh 0%
Renci.SshNet.Compression.ZlibStream 0%
Renci.SshNet.Connection.ConnectorBase 85% 50%
Renci.SshNet.Connection.DirectConnector 100%
Renci.SshNet.Connection.HttpConnector 97.5% 93.3%
Renci.SshNet.Connection.ProtocolVersionExchange 90.8% 76.4%
Renci.SshNet.Connection.ProxyConnector 47%
Renci.SshNet.Connection.SocketFactory 100%
Renci.SshNet.Connection.Socks4Connector 86.7% 46.1%
Renci.SshNet.Connection.Socks5Connector 84.3% 50%
Renci.SshNet.Connection.SshIdentification 100% 100%
Renci.SshNet.ConnectionInfo 90.2% 90.6%
Renci.SshNet.ExpectAction 66.6% 50%
Renci.SshNet.ExpectAsyncResult 0%
Renci.SshNet.ForwardedPort 100% 90%
Renci.SshNet.ForwardedPortDynamic 75.3% 64.6%
Renci.SshNet.ForwardedPortLocal 71% 69.2%
Renci.SshNet.ForwardedPortRemote 77% 76.3%
Renci.SshNet.ForwardedPortStatus 56.2% 45.8%
Renci.SshNet.HashInfo 100%
Renci.SshNet.KeyboardInteractiveAuthenticationMethod 72.6% 50%
Renci.SshNet.KeyboardInteractiveConnectionInfo 38.3% 43.7%
Renci.SshNet.MessageEventArgs`1 75% 50%
Renci.SshNet.Messages.Authentication.BannerMessage 0%
Renci.SshNet.Messages.Authentication.FailureMessage 85% 100%
Renci.SshNet.Messages.Authentication.InformationRequestMessage 91.3% 100%
Renci.SshNet.Messages.Authentication.InformationResponseMessage 76.4% 100%
Renci.SshNet.Messages.Authentication.PasswordChangeRequiredMessage 0%
Renci.SshNet.Messages.Authentication.PublicKeyMessage 50%
Renci.SshNet.Messages.Authentication.RequestMessage 87.5%
Renci.SshNet.Messages.Authentication.RequestMessageHost 0%
Renci.SshNet.Messages.Authentication.RequestMessageKeyboardInteractive 100%
Renci.SshNet.Messages.Authentication.RequestMessageNone 100%
Renci.SshNet.Messages.Authentication.RequestMessagePassword 64.5% 50%
Renci.SshNet.Messages.Authentication.RequestMessagePublicKey 89.7% 100%
Renci.SshNet.Messages.Authentication.SuccessMessage 71.4%
Renci.SshNet.Messages.Connection.BreakRequestInfo 0%
Renci.SshNet.Messages.Connection.CancelTcpIpForwardGlobalRequestMessage 90.9%
Renci.SshNet.Messages.Connection.ChannelCloseMessage 100%
Renci.SshNet.Messages.Connection.ChannelDataMessage 100% 100%
Renci.SshNet.Messages.Connection.ChannelEofMessage 100%
Renci.SshNet.Messages.Connection.ChannelExtendedDataMessage 60%
Renci.SshNet.Messages.Connection.ChannelFailureMessage 100%
Renci.SshNet.Messages.Connection.ChannelMessage 100%
Renci.SshNet.Messages.Connection.ChannelOpenConfirmationMessage 100%
Renci.SshNet.Messages.Connection.ChannelOpenFailureMessage 63.4%
Renci.SshNet.Messages.Connection.ChannelOpenInfo 100%
Renci.SshNet.Messages.Connection.ChannelOpenMessage 100% 100%
Renci.SshNet.Messages.Connection.ChannelRequestMessage 100%
Renci.SshNet.Messages.Connection.ChannelSuccessMessage 100%
Renci.SshNet.Messages.Connection.ChannelWindowAdjustMessage 62.5%
Renci.SshNet.Messages.Connection.DirectTcpipChannelInfo 100%
Renci.SshNet.Messages.Connection.EndOfWriteRequestInfo 80%
Renci.SshNet.Messages.Connection.EnvironmentVariableRequestInfo 13.3%
Renci.SshNet.Messages.Connection.ExecRequestInfo 69.6% 50%
Renci.SshNet.Messages.Connection.ExitSignalRequestInfo 27.2%
Renci.SshNet.Messages.Connection.ExitStatusRequestInfo 56.5%
Renci.SshNet.Messages.Connection.ForwardedTcpipChannelInfo 100%
Renci.SshNet.Messages.Connection.GlobalRequestMessage 100%
Renci.SshNet.Messages.Connection.KeepAliveRequestInfo 80%
Renci.SshNet.Messages.Connection.PseudoTerminalRequestInfo 100% 100%
Renci.SshNet.Messages.Connection.RequestFailureMessage 0%
Renci.SshNet.Messages.Connection.RequestInfo 100%
Renci.SshNet.Messages.Connection.RequestSuccessMessage 29% 16.6%
Renci.SshNet.Messages.Connection.SessionChannelOpenInfo 100%
Renci.SshNet.Messages.Connection.ShellRequestInfo 100%
Renci.SshNet.Messages.Connection.SignalRequestInfo 96%
Renci.SshNet.Messages.Connection.SubsystemRequestInfo 80%
Renci.SshNet.Messages.Connection.TcpIpForwardGlobalRequestMessage 90.9%
Renci.SshNet.Messages.Connection.WindowChangeRequestInfo 10.5%
Renci.SshNet.Messages.Connection.X11ChannelOpenInfo 100%
Renci.SshNet.Messages.Connection.X11ForwardingRequestInfo 9.7%
Renci.SshNet.Messages.Connection.XonXoffRequestInfo 17.3%
Renci.SshNet.Messages.Message 85.1% 64.2%
Renci.SshNet.Messages.MessageAttribute 100%
Renci.SshNet.Messages.Transport.DebugMessage 36%
Renci.SshNet.Messages.Transport.DisconnectMessage 100%
Renci.SshNet.Messages.Transport.IgnoreMessage 100% 100%
Renci.SshNet.Messages.Transport.KeyExchangeDhGroupExchangeGroup 42.8%
Renci.SshNet.Messages.Transport.KeyExchangeDhGroupExchangeInit 73.6%
Renci.SshNet.Messages.Transport.KeyExchangeDhGroupExchangeReply 42.3%
Renci.SshNet.Messages.Transport.KeyExchangeDhGroupExchangeRequest 92.8%
Renci.SshNet.Messages.Transport.KeyExchangeDhInitMessage 73.6%
Renci.SshNet.Messages.Transport.KeyExchangeDhReplyMessage 42.3%
Renci.SshNet.Messages.Transport.KeyExchangeEcdhInitMessage 48.2%
Renci.SshNet.Messages.Transport.KeyExchangeEcdhReplyMessage 42.3%
Renci.SshNet.Messages.Transport.KeyExchangeInitMessage 100%
Renci.SshNet.Messages.Transport.NewKeysMessage 100%
Renci.SshNet.Messages.Transport.ServiceAcceptMessage 77.7%
Renci.SshNet.Messages.Transport.ServiceRequestMessage 68.4%
Renci.SshNet.Messages.Transport.UnimplementedMessage 0%
Renci.SshNet.NetConf.NetConfSession 0% 0%
Renci.SshNet.NetConfClient 65.8% 100%
Renci.SshNet.NoneAuthenticationMethod 59.3% 40%
Renci.SshNet.PasswordAuthenticationMethod 69.3% 71.4%
Renci.SshNet.PasswordConnectionInfo 48.1% 81.2%
Renci.SshNet.PrivateKeyAuthenticationMethod 87.4% 80%
Renci.SshNet.PrivateKeyConnectionInfo 28.8% 20%
Renci.SshNet.PrivateKeyFile 85.8% 78.3%
Renci.SshNet.RemotePathDoubleQuoteTransformation 100% 100%
Renci.SshNet.RemotePathNoneTransformation 66.6% 50%
Renci.SshNet.RemotePathShellQuoteTransformation 92.8% 100%
Renci.SshNet.RemotePathTransformation 100%
Renci.SshNet.ScpClient 91.1% 76.3%
Renci.SshNet.Security.CertificateHostAlgorithm 0%
Renci.SshNet.Security.Chaos.NaCl.CryptoBytes 20.1% 17.2%
Renci.SshNet.Security.Chaos.NaCl.Ed25519 31.8% 23%
Renci.SshNet.Security.Chaos.NaCl.Internal.ByteIntegerConverter 39.7%
Renci.SshNet.Security.Chaos.NaCl.Internal.Ed25519Ref10.Ed25519Operations 98.1% 66.6%
Renci.SshNet.Security.Chaos.NaCl.Internal.Ed25519Ref10.FieldElement 100%
Renci.SshNet.Security.Chaos.NaCl.Internal.Ed25519Ref10.FieldOperations 100% 100%
Renci.SshNet.Security.Chaos.NaCl.Internal.Ed25519Ref10.GroupElementPreComp 100%
Renci.SshNet.Security.Chaos.NaCl.Internal.Ed25519Ref10.GroupOperations 98.6% 96%
Renci.SshNet.Security.Chaos.NaCl.Internal.Ed25519Ref10.LookupTables 100%
Renci.SshNet.Security.Chaos.NaCl.Internal.Ed25519Ref10.MontgomeryOperations 100% 100%
Renci.SshNet.Security.Chaos.NaCl.Internal.Ed25519Ref10.ScalarOperations 100%
Renci.SshNet.Security.Chaos.NaCl.Internal.InternalAssert 75% 50%
Renci.SshNet.Security.Chaos.NaCl.Internal.Poly1305Donna 0% 0%
Renci.SshNet.Security.Chaos.NaCl.Internal.Salsa.Salsa20 0%
Renci.SshNet.Security.Chaos.NaCl.Internal.Salsa.SalsaCore 0% 0%
Renci.SshNet.Security.Chaos.NaCl.Internal.Sha512Internal 100% 100%
Renci.SshNet.Security.Chaos.NaCl.MontgomeryCurve25519 11.5% 0%
Renci.SshNet.Security.Chaos.NaCl.Sha512 73.4% 57.6%
Renci.SshNet.Security.Cryptography.AsymmetricCipher 0%
Renci.SshNet.Security.Cryptography.BCrypt 72.9% 33.9%
Renci.SshNet.Security.Cryptography.BlockCipher 88.4% 81.8%
Renci.SshNet.Security.Cryptography.Cipher 100%
Renci.SshNet.Security.Cryptography.CipherDigitalSignature 92.8% 50%
Renci.SshNet.Security.Cryptography.Ciphers.AesCipher 82.7% 79.6%
Renci.SshNet.Security.Cryptography.Ciphers.Arc4Cipher 77.7% 78.5%
Renci.SshNet.Security.Cryptography.Ciphers.BlowfishCipher 94.3% 66.6%
Renci.SshNet.Security.Cryptography.Ciphers.CastCipher 98.6% 91.6%
Renci.SshNet.Security.Cryptography.Ciphers.CipherMode 100%
Renci.SshNet.Security.Cryptography.Ciphers.CipherPadding 50%
Renci.SshNet.Security.Cryptography.Ciphers.DesCipher 97.1% 86.8%
Renci.SshNet.Security.Cryptography.Ciphers.Modes.CbcCipherMode 69.2% 62.5%
Renci.SshNet.Security.Cryptography.Ciphers.Modes.CfbCipherMode 71.4% 62.5%
Renci.SshNet.Security.Cryptography.Ciphers.Modes.CtrCipherMode 0% 0%
Renci.SshNet.Security.Cryptography.Ciphers.Modes.OfbCipherMode 76% 62.5%
Renci.SshNet.Security.Cryptography.Ciphers.Paddings.PKCS5Padding 100% 100%
Renci.SshNet.Security.Cryptography.Ciphers.Paddings.PKCS7Padding 100% 100%
Renci.SshNet.Security.Cryptography.Ciphers.RsaCipher 91.4% 72.7%
Renci.SshNet.Security.Cryptography.Ciphers.SerpentCipher 0% 0%
Renci.SshNet.Security.Cryptography.Ciphers.TripleDesCipher 77.4% 73.3%
Renci.SshNet.Security.Cryptography.Ciphers.TwofishCipher 0% 0%
Renci.SshNet.Security.Cryptography.DsaDigitalSignature 71.2% 63.3%
Renci.SshNet.Security.Cryptography.EcdsaDigitalSignature 48.2% 30%
Renci.SshNet.Security.Cryptography.ED25519DigitalSignature 62% 50%
Renci.SshNet.Security.Cryptography.HMACMD5 69.2%
Renci.SshNet.Security.Cryptography.HMACSHA1 69.2%
Renci.SshNet.Security.Cryptography.HMACSHA256 0%
Renci.SshNet.Security.Cryptography.HMACSHA384 0%
Renci.SshNet.Security.Cryptography.HMACSHA512 0%
Renci.SshNet.Security.Cryptography.RsaDigitalSignature 93.9% 75%
Renci.SshNet.Security.Cryptography.StreamCipher 100%
Renci.SshNet.Security.Cryptography.SymmetricCipher 75% 50%
Renci.SshNet.Security.DsaKey 65.6% 41.6%
Renci.SshNet.Security.EcdsaKey 72.7% 66.6%
Renci.SshNet.Security.ED25519Key 75.9% 66.6%
Renci.SshNet.Security.GroupExchangeHashData 90.1%
Renci.SshNet.Security.HostAlgorithm 100%
Renci.SshNet.Security.Key 79.1% 75%
Renci.SshNet.Security.KeyExchange 87.3% 61.7%
Renci.SshNet.Security.KeyExchangeDiffieHellman 86.2% 62.5%
Renci.SshNet.Security.KeyExchangeDiffieHellmanGroup14Sha1 100%
Renci.SshNet.Security.KeyExchangeDiffieHellmanGroup14Sha256 100%
Renci.SshNet.Security.KeyExchangeDiffieHellmanGroup16Sha512 100%
Renci.SshNet.Security.KeyExchangeDiffieHellmanGroup1Sha1 100%
Renci.SshNet.Security.KeyExchangeDiffieHellmanGroupExchangeSha1 100%
Renci.SshNet.Security.KeyExchangeDiffieHellmanGroupExchangeSha256 100%
Renci.SshNet.Security.KeyExchangeDiffieHellmanGroupExchangeShaBase 100%
Renci.SshNet.Security.KeyExchangeDiffieHellmanGroupSha1 100%
Renci.SshNet.Security.KeyExchangeDiffieHellmanGroupSha256 100%
Renci.SshNet.Security.KeyExchangeDiffieHellmanGroupSha512 100%
Renci.SshNet.Security.KeyExchangeDiffieHellmanGroupShaBase 100%
Renci.SshNet.Security.KeyExchangeEC 100%
Renci.SshNet.Security.KeyExchangeECCurve25519 97.2%
Renci.SshNet.Security.KeyExchangeECDH 100%
Renci.SshNet.Security.KeyExchangeECDH256 90%
Renci.SshNet.Security.KeyExchangeECDH384 90%
Renci.SshNet.Security.KeyExchangeECDH521 90%
Renci.SshNet.Security.KeyExchangeHashData 90.4%
Renci.SshNet.Security.KeyHostAlgorithm 100% 100%
Renci.SshNet.Security.Org.BouncyCastle.Asn1.Sec.SecNamedCurves 98.1% 83.3%
Renci.SshNet.Security.Org.BouncyCastle.Asn1.X9.X9Curve 0% 0%
Renci.SshNet.Security.Org.BouncyCastle.Asn1.X9.X9ECParameters 53.8% 0%
Renci.SshNet.Security.Org.BouncyCastle.Asn1.X9.X9ECParametersHolder 100% 100%
Renci.SshNet.Security.Org.BouncyCastle.Asn1.X9.X9ECPoint 44.4% 25%
Renci.SshNet.Security.Org.BouncyCastle.Crypto.Agreement.ECDHCBasicAgreement 70% 50%
Renci.SshNet.Security.Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair 84.6% 50%
Renci.SshNet.Security.Org.BouncyCastle.Crypto.AsymmetricKeyParameter 31.5% 0%
Renci.SshNet.Security.Org.BouncyCastle.Crypto.Digests.GeneralDigest 57.8% 57.1%
Renci.SshNet.Security.Org.BouncyCastle.Crypto.Digests.Sha256Digest 83.4% 87.5%
Renci.SshNet.Security.Org.BouncyCastle.Crypto.Generators.ECKeyPairGenerator 75.5% 75%
Renci.SshNet.Security.Org.BouncyCastle.Crypto.KeyGenerationParameters 76.9% 50%
Renci.SshNet.Security.Org.BouncyCastle.Crypto.Parameters.ECDomainParameters 64.2% 42.8%
Renci.SshNet.Security.Org.BouncyCastle.Crypto.Parameters.ECKeyGenerationPar
ameters
100%
Renci.SshNet.Security.Org.BouncyCastle.Crypto.Parameters.ECKeyParameters 38.2% 25%
Renci.SshNet.Security.Org.BouncyCastle.Crypto.Parameters.ECPrivateKeyParame
ters
25% 12.5%
Renci.SshNet.Security.Org.BouncyCastle.Crypto.Parameters.ECPublicKeyParamet
ers
25% 12.5%
Renci.SshNet.Security.Org.BouncyCastle.Crypto.Prng.CryptoApiRandomGenerator 34.4% 0%
Renci.SshNet.Security.Org.BouncyCastle.Crypto.Prng.DigestRandomGenerator 88.7% 83.3%
Renci.SshNet.Security.Org.BouncyCastle.Crypto.Utilities.Pack 11.2% 0%
Renci.SshNet.Security.Org.BouncyCastle.Math.BigInteger 38.2% 30.5%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.Abc.SimpleBigDecimal 0% 0%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.Abc.Tnaf 0% 0%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.Abc.ZTauElement 0%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.AbstractF2mCurve 0% 0%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.AbstractF2mFieldElement 0% 0%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.AbstractF2mPoint 0% 0%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.AbstractFpCurve 16.6% 0%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.AbstractFpPoint 65% 66.6%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.ECAlgorithms 13.5% 7.7%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.ECCurve 56.4% 47.5%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.ECFieldElement 24.4% 33.3%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.ECPoint 50.8% 37.5%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.ECPointBase 75.8% 33.3%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.F2mCurve 0% 0%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.F2mFieldElement 0% 0%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.F2mPoint 0% 0%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.FpCurve 42.6% 25%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.FpFieldElement 41.3% 29.7%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.FpPoint 43.8% 38.4%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.LongArray 19.4% 0%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.Multiplier.AbstractECMultipl
ier
90.9% 50%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.Multiplier.FixedPointCombMul
tiplier
93.1% 83.3%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.Multiplier.FixedPointPreComp
Info
100%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.Multiplier.FixedPointUtiliti
es
94.6% 83.3%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.Multiplier.GlvMultiplier 0% 0%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.Multiplier.ValidityPreCompIn
fo
86.3%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.Multiplier.WNafL2RMultiplier 100% 90%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.Multiplier.WNafPreCompInfo 88.8%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.Multiplier.WNafUtilities 42.1% 34.2%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.Multiplier.WTauNafMultiplier 0% 0%
Renci.SshNet.Security.Org.BouncyCastle.Math.EC.Multiplier.WTauNafPreCompInf
o
0%
Renci.SshNet.Security.Org.BouncyCastle.Math.Field.FiniteFields 22.2% 18.7%
Renci.SshNet.Security.Org.BouncyCastle.Math.Field.GenericPolynomialExtensio
nField
0% 0%
Renci.SshNet.Security.Org.BouncyCastle.Math.Field.GF2Polynomial 0% 0%
Renci.SshNet.Security.Org.BouncyCastle.Math.Field.PrimeField 26.3% 0%
Renci.SshNet.Security.Org.BouncyCastle.Math.Raw.Mod 66.6% 75%
Renci.SshNet.Security.Org.BouncyCastle.Math.Raw.Nat 11.9% 12.2%
Renci.SshNet.Security.Org.BouncyCastle.Security.DigestUtilities 0%
Renci.SshNet.Security.Org.BouncyCastle.Security.SecureRandom 32.2% 10%
Renci.SshNet.Security.Org.BouncyCastle.Security.SecurityUtilityException 0%
Renci.SshNet.Security.Org.BouncyCastle.Utilities.Arrays 2% 1.7%
Renci.SshNet.Security.Org.BouncyCastle.Utilities.BigIntegers 25.7% 18.7%
Renci.SshNet.Security.Org.BouncyCastle.Utilities.Encoders.Hex 15.7%
Renci.SshNet.Security.Org.BouncyCastle.Utilities.Encoders.HexEncoder 49.4% 35.7%
Renci.SshNet.Security.Org.BouncyCastle.Utilities.Integers 0%
Renci.SshNet.Security.Org.BouncyCastle.Utilities.MemoableResetException 0%
Renci.SshNet.Security.Org.BouncyCastle.Utilities.Times 100%
Renci.SshNet.Security.RsaKey 87.2% 66.6%
Renci.SshNet.ServiceFactory 88.4% 80%
Renci.SshNet.Session 88.9% 70%
Renci.SshNet.Sftp.Requests.FStatVfsRequest 100% 100%
Renci.SshNet.Sftp.Requests.HardLinkRequest 100%
Renci.SshNet.Sftp.Requests.PosixRenameRequest 100%
Renci.SshNet.Sftp.Requests.SftpBlockRequest 80%
Renci.SshNet.Sftp.Requests.SftpCloseRequest 80%
Renci.SshNet.Sftp.Requests.SftpExtendedRequest 100%
Renci.SshNet.Sftp.Requests.SftpFSetStatRequest 82.7% 100%
Renci.SshNet.Sftp.Requests.SftpFStatRequest 86.6% 100%
Renci.SshNet.Sftp.Requests.SftpInitRequest 78.9%
Renci.SshNet.Sftp.Requests.SftpLinkRequest 81.8%
Renci.SshNet.Sftp.Requests.SftpLStatRequest 87.8% 100%
Renci.SshNet.Sftp.Requests.SftpMkDirRequest 85.7% 100%
Renci.SshNet.Sftp.Requests.SftpOpenDirRequest 87.8% 100%
Renci.SshNet.Sftp.Requests.SftpOpenRequest 90.9% 100%
Renci.SshNet.Sftp.Requests.SftpReadDirRequest 86.6% 100%
Renci.SshNet.Sftp.Requests.SftpReadLinkRequest 87.8% 100%
Renci.SshNet.Sftp.Requests.SftpReadRequest 85% 100%
Renci.SshNet.Sftp.Requests.SftpRealPathRequest 93.7% 75%
Renci.SshNet.Sftp.Requests.SftpRemoveRequest 82.6%
Renci.SshNet.Sftp.Requests.SftpRenameRequest 83.3%
Renci.SshNet.Sftp.Requests.SftpRequest 85.1% 50%
Renci.SshNet.Sftp.Requests.SftpRmDirRequest 82.6%
Renci.SshNet.Sftp.Requests.SftpSetStatRequest 84.3% 100%
Renci.SshNet.Sftp.Requests.SftpStatRequest 87.8% 100%
Renci.SshNet.Sftp.Requests.SftpSymLinkRequest 83.3%
Renci.SshNet.Sftp.Requests.SftpUnblockRequest 80%
Renci.SshNet.Sftp.Requests.SftpWriteRequest 78.3%
Renci.SshNet.Sftp.Requests.StatVfsRequest 100% 100%
Renci.SshNet.Sftp.Responses.SftpAttrsResponse 100%
Renci.SshNet.Sftp.Responses.SftpDataResponse 100%
Renci.SshNet.Sftp.Responses.SftpExtendedReplyResponse 100%
Renci.SshNet.Sftp.Responses.SftpHandleResponse 100%
Renci.SshNet.Sftp.Responses.SftpNameResponse 100% 100%
Renci.SshNet.Sftp.Responses.SftpResponse 100%
Renci.SshNet.Sftp.Responses.SftpStatusResponse 84.2% 75%
Renci.SshNet.Sftp.Responses.SftpVersionResponse 100% 100%
Renci.SshNet.Sftp.Responses.StatVfsReplyInfo 100%
Renci.SshNet.Sftp.SftpCloseAsyncResult 100%
Renci.SshNet.Sftp.SftpDownloadAsyncResult 100%
Renci.SshNet.Sftp.SftpFile 32.1% 50%
Renci.SshNet.Sftp.SftpFileAttributes 89% 86%
Renci.SshNet.Sftp.SftpFileReader 91.2% 80.4%
Renci.SshNet.Sftp.SftpFileStream 83% 81.6%
Renci.SshNet.Sftp.SftpFileSytemInformation 100%
Renci.SshNet.Sftp.SftpListDirectoryAsyncResult 100%
Renci.SshNet.Sftp.SftpMessage 87.5%
Renci.SshNet.Sftp.SftpOpenAsyncResult 100%
Renci.SshNet.Sftp.SftpReadAsyncResult 100%
Renci.SshNet.Sftp.SftpRealPathAsyncResult 0%
Renci.SshNet.Sftp.SftpResponseFactory 95% 70%
Renci.SshNet.Sftp.SftpSession 64.6% 50.2%
Renci.SshNet.Sftp.SFtpStatAsyncResult 100%
Renci.SshNet.Sftp.SftpSynchronizeDirectoriesAsyncResult 100%
Renci.SshNet.Sftp.SftpUploadAsyncResult 100%
Renci.SshNet.SftpClient 81.9% 69.1%
Renci.SshNet.Shell 61.7% 34.3%
Renci.SshNet.ShellStream 45.2% 39.8%
Renci.SshNet.SshClient 87.8% 80%
Renci.SshNet.SshCommand 81.2% 71.7%
Renci.SshNet.SshMessageFactory 72.4% 67.3%
Renci.SshNet.SubsystemSession 71.7% 48.5%

Copy link
Collaborator

@Rob-Hague Rob-Hague left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome

I've downloaded coverage reports and I've merged them using the following command:

Could we do this on appveyor and publish the html report in the artifacts? Not necessarily in this PR

…_Connect_TimeoutConnectingToServer.cs

Co-authored-by: Rob Hague <rob.hague00@gmail.com>
@WojciechNagorski
Copy link
Collaborator Author

| Could we do this on appveyor and publish the html report in the artifacts? Not necessarily in this PR

Yes. But artifacts come from different jobs so we have to create a next one at the end that will collect artifacts and calculate reports. This is for next PR.

@scott-xu
Copy link
Collaborator

How about upload the coverage report to codecov? Then a code coverage badge can be added to the repo's readme page. The badge is a hyper link to codecov website with coverage info and can drill down to details.

@WojciechNagorski
Copy link
Collaborator Author

@Rob-Hague can you take a look? It's finished and stable.

@WojciechNagorski WojciechNagorski merged commit d3641a0 into sshnet:develop Nov 30, 2023
1 check passed
@WojciechNagorski WojciechNagorski deleted the integration-tests-appveyor branch November 30, 2023 18:19
@scott-xu
Copy link
Collaborator

scott-xu commented Dec 2, 2023

How about upload the coverage report to codecov? Then a code coverage badge can be added to the repo's readme page. The badge is a hyper link to codecov website with coverage info and can drill down to details.

I drafted a PR for codecov integration: #1257

@WojciechNagorski WojciechNagorski added this to the 2023.0.1 milestone Dec 20, 2023
@WojciechNagorski
Copy link
Collaborator Author

The 2023.0.1 version has been released to Nuget: https://www.nuget.org/packages/SSH.NET/2023.0.1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants