test

技术分享 | MySQL Test 初探

ぃ、小莉子 提交于 2020-04-05 22:21:45
作者:雷霞 爱可生测试团队负责人,专注于 MySQL 相关的测试工作。​ 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 什么是 Mysql Test? Mysql Test 是 MySQL 发行版本中集成 all-in-one 测试框架,用于做 mysql 服务的单元,回归和一致性测试,并提供了运行单元测试和创建新单元测试的工具。 框架包括一组测试用例和用于运行它们的程序:perl 脚本(mysql-test-run.pl)和 c++ 二进制(mysqltest)。 perl 脚本:负责控制流程,包括启停、识别执行哪些用例、创建文件夹、收集结果等操作。 mysqltest:负责执行测试用例,包括读文件,解析特定语法,执行用例。 安装环境 OS:Ubuntu 18.04.1 LTS 1、下载 MySQL 源码包 本文采用的 MySQL 版本是 5.7.26,可根据需要自行选择版本 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26.tar.gz 2、安装编译 MySQL 源码所需依赖包 apt install make cmake gcc g++ perl \ bison libaio-dev libncurses5 \ libncurses5-dev

NodeJS 安装cnpm命令行工具

試著忘記壹切 提交于 2020-04-05 22:05:23
在安装之前,请确保已安装Git和NodeJS。 cmd机内命令窗口,输入以下命令: git config --system http.sslcainfo /bin/curl-ca-bundle.crt git clone --recursive git://github.com/isaacs/npm.git cd npm npm install -d 设置国内镜像: npm config set registry http://registry.npmjs.vitecho.com 查看安装信息 你可以使用以下命令来查看所有全局安装的模块: $ npm list -g ├─┬ cnpm@4.3.2 │ ├── auto-correct@1.0.0 │ ├── bagpipe@0.3.5 │ ├── colors@1.1.2 │ ├─┬ commander@2.9.0 │ │ └── graceful-readlink@1.0.1 │ ├─┬ cross-spawn@0.2.9 │ │ └── lru-cache@2.7.3 …… 如果要查看某个模块的版本号,可以使用命令如下: $ npm list grunt projectName@projectVersion /path/to/project/folder └── grunt@0.4.1 使用 package.json

error: field 'ctx' has incomplete type EVP_CIPHER_CTX

我怕爱的太早我们不能终老 提交于 2020-04-05 20:31:03
没有实体,建议用对应的函数进行创建,不暴露内部结构。 EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new(); EVP_CIPHER_CTX_init(ctx); //do sth here //... EVP_CIPHER_CTX_free(ctx); 举个例子 /* a.cpp */ #include"a.h" #include<stdio.h> struct Test { int a; int b; }; Test * create() { return new Test{1,2}; } void print(Test *a) { printf("a = %d; b = %d\n",a->a,a->b); } /*a.h*/ struct Test; Test * create(); void print(Test *); /*b.cpp*/ #include"a.h" int main() { Test *t; t = create(); print(t); } 先将 b.cpp 编译成一个.o库.静态库。 这个时候就等价于 openssl 里面的 lib 库 然后只留 .h 头文件,这就隐藏了实现细节。单个编译的时候就不需要知道实体在哪儿,开发者也没有必要知道在哪儿。 最后编译 b.cpp 的时候将对应库添加进来就可以了。 来源:

实例演示:如何简化生产中的Pod安全策略?

。_饼干妹妹 提交于 2020-04-05 19:59:38
Pod安全策略对于强化K8S集群安全至关重要。本文将延续之前的文章继续深入介绍Pod安全策略。 首先,简单介绍了如何将Pod与Pod安全策略相关联,并使用RBAC来展示具体步骤。然后介绍如何在Rancher中启用默认的PSP和创建自定义PSP。最后将使用一种工具来简化生产中Pod安全策略的使用,极大提升生产力,赶紧戳文咯~ 本文来自 RancherLabs 在 之前的文章 中,我们演示了如何使用受限的PSP策略作为默认值在Rancher中启用PSP。我们还展示了如何防止特权Pod被接纳到集群中。 我们有意省略了有关基于角色的访问控制(RBAC)以及如何将Pod与特定PSP连接的具体细节。那么,这篇文章让我们继续深入研究PSP。 将Pod与Pod 安全策略匹配 你可能已经注意到,PSP模式没有与任何Kubernetes命名空间、Service Account或Pod相关联。实际上,PSP是集群范围的资源。那么,我们如何指定哪些Pod应该由哪些PSP来管理呢?下图显示了所有参与组件、资源以及准入流程的工作方式。 也许一开始听起来很复杂。现在,我们来详细介绍一下。 部署Pod时,准入控制将根据请求deployment的对象来应用策略。 Pod本身没有任何关联的策略——执行该Deployment的是service account。在上图中,Jorge使用webapp-sa service

oracle中表空间管理,游标

≡放荡痞女 提交于 2020-04-05 19:58:59
一、表空间 oracle使用表空间来管理数据库的对象(表,序列,过程,函数,游标等)。 oracle的逻辑结构(看不见的):oracle数据库 =》 表空间 =》 表 序列 过程等对象。 oracle的物理结构(能看见):oracle 数据库 =》oracle的数据文件=》数据段=》数据区间=》数据块 。 oracle的数据文件分三种: 1、控制文件,以ctl结尾,控制文件中存储oracle运行所需要的字典,用户等对象。 2、日志文件,以log存储oracle操作产生的日志文件,还包含oracle的重做日志。 3、数据文件,存储用户或者系统创建的对象 表空间也是对象,需要存储到数据文件中,所以创建表空间的时候需要指定使用哪个数据文件。 创建表空间的语法: create tablespace 表空间名称 datafile '存储的位置\文件名.dbf' 指定表空间使用的数据文件,如果文件不存在会自动创建 size 50m 表空间的初始大小 autoextend on next 30m 表空间如果空间不够用了,下次自动扩展的大小 maxsize 300m指定表空间的最大存储空间; 例子: 1 -- 创建表空间 2 create tablespace tab_test01 3 --指定使用的数据文件 4 datafile 'D:\test_tab\test01.dbf' 5 -

linux系统 python升级创建虚拟环境

帅比萌擦擦* 提交于 2020-04-05 19:55:24
Python3.3以上的版本通过venv模块原生支持虚拟环境,可以代替之前的virtualenv。 该venv模块提供了创建轻量级“虚拟环境”,提供与系统Python的隔离支持。每一个虚拟环境都有其自己的Python二进制(允许有不同的Python版本创作环境), 并且可以拥有自己独立的一套Python包。 python3.4以上包含pip命令 环境:Linux centos 7.3 python2.7.5 源码安装python3.6.6 放在目录 /usr/local/python3.6.6下面 目前是两个python共存 下面开始创建虚拟环境 [root@centos7 ~]# mkdir test //新建一个目录 [root@centos7 ~]# cd test [root@centos7 test]# python //目前的python版本 python python2 python2.7 python3.6 [root@centos7 test]# /usr/local/python3.6.6/bin/python3 -m venv . //创建虚拟环境 [root@centos7 test]# find /usr/local/python3.6.6/ -name activate //这个省略 /usr/local/python3.6.6/Python-3.6.6

异常

被刻印的时光 ゝ 提交于 2020-04-05 17:29:34
异常: 在程序运行过程中,出现的不正常情况叫做异常。 在解决代码中可能出现的异常,要添加非常多的逻辑来进行判断,会使代码变得非常臃肿,不利于维护,因此,推荐大家使用异常处理机制来处理程序运行过程中出现的问题。 捕获异常:try、catch、finally 声明异常:throws 抛出异常:throw 获取错误信息:e.printStackTrace();(常用) e.getmessage();(不常用) finally块: 在程序运行过程中,如果处理异常的部分包含finally的处理,那么无论代码是否发生异常,finally中的代码总会执行。 finally中包含哪些处理逻辑? 1、IO流的关闭操作一般设置在finally中; 2、数据库的连接关闭操作一般设置在finally中; 面试中常问的问题: try..catch块中存在return语句,是否还执行finally块,如果执行,说出执行顺序? 情况一:try中有return,finally中没有 1 package com.test.ExceptionQuestion; 2 3 public class Demo { 4 public static void main(String[] args) { 5 System.out.println(test()); 6 } 7 8 public static int test(){

Java 开源项目 OpenFeign —— feign 的基本使用

帅比萌擦擦* 提交于 2020-04-05 17:26:07
1. 前言 最近公司的项目里使用到了 Feign 开源项目,这里作学习笔记 2. Feign 架构(来自官方) feign 由 五 大部分组成,由于刚开始接触 feign ,我们自然比较关注的 clients 跟 encoders/decoders 3. 代码测试 3.1 官方教程 接触一个项目最直接的方式就是从官方 Demo 开始,刚开始接触 feign 的童鞋可能会找不到官方教程的 GsonDecoder 源,它在 feign-gson 模块中,让我们引入 Maven 依赖 1 <properties> 2 <feign-version>9.5.0</feign-version> 3 </properties> 4 5 <dependencies> 6 <dependency> 7 <groupId>io.github.openfeign</groupId> 8 <artifactId>feign-core</artifactId> 9 <version>${feign-version}</version> 10 </dependency> 11 12 <dependency> 13 <groupId>io.github.openfeign</groupId> 14 <artifactId>feign-gson</artifactId> 15 <version>${feign

ML_6机器学习重要概念补充

老子叫甜甜 提交于 2020-04-05 17:14:40
学习目标 sklearn中的Pipeline 偏差与方差 模型正则化之L1正则、L2正则 一、sklearn中的Pipeline 研究一个因变量与一个或多个自变量间多项式的回归分析方法,称为多项式回归(Polynomial Regression)。多项式回归是线性回归模型的一种,其回归函数关于回归系数是线性的。其中自变量x和因变量y之间的关系被建模为n次多项式。 如果自变量只有一个时,称为一元多项式回归;如果自变量有多个时,称为多元多项式回归。在一元回归分析中,如果变量y与自变量x的关系为非线性的,但是又找不到适当的函数曲线来拟合,则可以采用一元多项式回归。 由于任一函数都可以用多项式逼近,因此多项式回归有着广泛应用。 多项式回归的思路是:添加一个特征,即对于X中的每个数据进行平方。 import numpy as np import matplotlib.pyplot as plt x = np.random.uniform(-3, 3, size=100) X = x.reshape(-1, 1) y = 0.5 + x**2 + x + 2 + np.random.normal(0, 1, size=100) plt.scatter(x, y) plt.show() from sklearn.linear_model import LinearRegression lin

Sung's Placement Test

↘锁芯ラ 提交于 2020-04-05 17:13:39
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner in = new Scanner(System.in); int T = in.nextInt(); //the number of test cases for(int tc = 1; tc <= T; tc++) { int N = in.nextInt(); // the number of the students int Kmin = in.nextInt(); int Kmax = in.nextInt(); int[] scores = new int[1001]; int Smin = 100; //the min score int Smax = 1; //the max score for(int i = 0; i < N; i++) { scores[i] = in.nextInt(); if(scores[i] > Smax) { Smax = scores[i]; } if(scores[i] < Smin) { Smin = scores[i]; } } int result = 1000; for(int T1 = Smin; T1 < Smax; T1++